blob: 87d69690ee948dc155ad1e327da2a98ae8912c79 [file] [log] [blame]
use criterion::Benchmark;
use criterion::Criterion;
use criterion::Throughput;
use std::time::Duration;
const SIZE: usize = 1024 * 1024;
fn large_drop(c: &mut Criterion) {
c.bench(
"iter_with_large_drop",
Benchmark::new("large_drop", |b| {
let v: Vec<_> = (0..SIZE).map(|i| i as u8).collect();
b.iter_with_large_drop(|| v.clone());
})
.throughput(Throughput::Bytes(SIZE as u32)),
);
}
fn small_drop(c: &mut Criterion) {
c.bench(
"iter_with_large_drop",
Benchmark::new("small_drop", |b| {
b.iter_with_large_drop(|| SIZE);
}),
);
}
fn short_warmup() -> Criterion {
Criterion::default().warm_up_time(Duration::new(1, 0))
}
criterion_group! {
name = benches;
config = short_warmup();
targets = large_drop, small_drop
}