diff --git a/bench/crossbeam.rs b/bench/crossbeam.rs index e855e2432..a707bad91 100644 --- a/bench/crossbeam.rs +++ b/bench/crossbeam.rs @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -use criterion::{criterion_group, criterion_main, BenchmarkId, Criterion}; +use criterion::{criterion_group, criterion_main, BenchmarkId, Criterion, BatchSize}; use easy_parallel::Parallel; use std::{collections::HashMap, sync::{Arc, Mutex, atomic::{AtomicBool, Ordering}}}; use rand::{rngs::OsRng, Rng}; @@ -49,14 +49,18 @@ fn crossbeam(c: &mut Criterion) { }); group.bench_with_input(BenchmarkId::from_parameter(k), &k, |b, &_| { - b.iter(|| { - // Do 10k inserts - for _ in 0..10_000 { + b.iter_batched( + || { let key: usize = OsRng.gen(); let val: usize = OsRng.gen(); + (key, val) + }, + |(key, val)| { + // Do 10k inserts map.insert(key, val); - } - }) + }, + BatchSize::SmallInput + ) }); stopped.store(true, Ordering::Relaxed); @@ -94,14 +98,18 @@ fn crossbeam(c: &mut Criterion) { }); group.bench_with_input(BenchmarkId::from_parameter(k), &k, |b, &_| { - b.iter(|| { - // Do 10k inserts - for _ in 0..10_000 { + b.iter_batched( + || { let key: usize = OsRng.gen(); let val: usize = OsRng.gen(); + (key, val) + }, + |(key, val)| { + // Do 10k inserts map.lock().unwrap().insert(key, val); - } - }) + }, + BatchSize::SmallInput + ) }); stopped.store(true, Ordering::Relaxed);