drillx 2.2.0

Drillx is a proof-of-work algorithm for cryptocurrency mining on Solana.
Documentation
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);