use criterion::{
BenchmarkId, Criterion, Throughput, {criterion_group, criterion_main},
};
fn drillx_loop(nonces: u64) {
let mut memory = drillx::equix::SolverMemory::new();
let challenge = [255; 32];
for nonce in 0..nonces {
drillx::hash_with_memory(&mut memory, &challenge, &nonce.to_le_bytes()).ok();
}
}
fn different_sizes(c: &mut Criterion) {
let mut group = c.benchmark_group("drillx");
for size in [1, 10, 100].iter() {
group.throughput(Throughput::Elements(*size as u64));
group.bench_with_input(BenchmarkId::from_parameter(size), size, |b, &size| {
b.iter(|| drillx_loop(size as u64))
});
}
group.finish();
}
criterion_group!(benches, different_sizes);
criterion_main!(benches);