aboutsummaryrefslogtreecommitdiff
path: root/benches/benchmarks/iter_with_large_setup.rs
diff options
context:
space:
mode:
Diffstat (limited to 'benches/benchmarks/iter_with_large_setup.rs')
-rwxr-xr-xbenches/benchmarks/iter_with_large_setup.rs38
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
+}