| 1 | use std::iter; |
| 2 | |
| 3 | use criterion::{criterion_group, BenchmarkId, Criterion, Throughput}; |
| 4 | |
| 5 | fn from_elem(c: &mut Criterion) { |
| 6 | static KB: usize = 1024; |
| 7 | |
| 8 | let mut group = c.benchmark_group("from_elem" ); |
| 9 | for size in [KB, 2 * KB, 4 * KB, 8 * KB, 16 * KB].iter() { |
| 10 | group.throughput(Throughput::Bytes(*size as u64)); |
| 11 | group.bench_with_input(BenchmarkId::from_parameter(size), size, |b, &size| { |
| 12 | b.iter(|| iter::repeat(0u8).take(size).collect::<Vec<_>>()); |
| 13 | }); |
| 14 | } |
| 15 | group.finish(); |
| 16 | |
| 17 | let mut group = c.benchmark_group("from_elem_decimal" ); |
| 18 | for size in [KB, 2 * KB].iter() { |
| 19 | group.throughput(Throughput::BytesDecimal(*size as u64)); |
| 20 | group.bench_with_input(BenchmarkId::from_parameter(size), size, |b, &size| { |
| 21 | b.iter(|| iter::repeat(0u8).take(size).collect::<Vec<_>>()); |
| 22 | }); |
| 23 | } |
| 24 | group.finish(); |
| 25 | } |
| 26 | |
| 27 | criterion_group!(benches, from_elem); |
| 28 | |