use micromeasure::{BenchmarkRuntimeOptions, NoContext, Throughput, benchmark_main, black_box};
use std::time::Duration;
fn add_loop(_ctx: &mut NoContext, chunk_size: usize, _chunk_num: usize) {
let mut acc = black_box(0_u64);
let limit = black_box(chunk_size as u64);
for i in 0..limit {
acc = acc.wrapping_add(black_box(i));
}
black_box(acc);
}
benchmark_main!(|runner| {
let runtime = BenchmarkRuntimeOptions {
warm_up_duration: Duration::from_millis(500),
benchmark_duration: Duration::from_secs(2),
..BenchmarkRuntimeOptions::default()
};
runner
.set_runtime(runtime)
.group::<NoContext>("Arithmetic", |g| {
g.throughput(Throughput::per_operation(8, "bytes"))
.bench("add_loop", add_loop);
});
});