diff options
Diffstat (limited to 'benches/benchmarks/iter_with_large_setup.rs')
-rwxr-xr-x | benches/benchmarks/iter_with_large_setup.rs | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/benches/benchmarks/iter_with_large_setup.rs b/benches/benchmarks/iter_with_large_setup.rs new file mode 100755 index 0000000..9cbf51a --- /dev/null +++ b/benches/benchmarks/iter_with_large_setup.rs @@ -0,0 +1,38 @@ +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 +} |