| #![allow(deprecated)] |
| |
| use criterion::{criterion_group, Benchmark, Criterion, Throughput}; |
| use std::time::Duration; |
| |
| const SIZE: usize = 1024 * 1024; |
| |
| fn large_setup(c: &mut Criterion) { |
| c.bench( |
| "iter_with_large_setup", |
| Benchmark::new("large_setup", |b| { |
| // NOTE: iter_with_large_setup is deprecated. Use iter_batched instead. |
| b.iter_with_large_setup( |
| || (0..SIZE).map(|i| i as u8).collect::<Vec<_>>(), |
| |v| v.clone(), |
| ) |
| }) |
| .throughput(Throughput::Bytes(SIZE as u64)), |
| ); |
| } |
| |
| fn small_setup(c: &mut Criterion) { |
| c.bench( |
| "iter_with_large_setup", |
| Benchmark::new("small_setup", |b| { |
| // NOTE: iter_with_large_setup is deprecated. Use iter_batched instead. |
| b.iter_with_large_setup(|| SIZE, |size| size) |
| }), |
| ); |
| } |
| |
| fn short_warmup() -> Criterion { |
| Criterion::default().warm_up_time(Duration::new(1, 0)) |
| } |
| |
| criterion_group! { |
| name = benches; |
| config = short_warmup(); |
| targets = large_setup, small_setup |
| } |