bench(smt-subtree): add a benchmark for single-leaf subtrees
This commit is contained in:
parent
40c2ff9262
commit
ea6e7e0411
1 changed files with 6 additions and 7 deletions
|
@ -9,12 +9,14 @@ use miden_crypto::{
|
|||
use rand_utils::prng_array;
|
||||
use winter_utils::Randomizable;
|
||||
|
||||
const PAIR_COUNTS: [u64; 5] = [1, 64, 128, 192, 256];
|
||||
|
||||
fn smt_subtree_even(c: &mut Criterion) {
|
||||
let mut seed = [0u8; 32];
|
||||
|
||||
let mut group = c.benchmark_group("subtree8-even");
|
||||
|
||||
for pair_count in (64..=256).step_by(64) {
|
||||
for pair_count in PAIR_COUNTS {
|
||||
let bench_id = BenchmarkId::from_parameter(pair_count);
|
||||
group.bench_with_input(bench_id, &pair_count, |b, &pair_count| {
|
||||
b.iter_batched(
|
||||
|
@ -23,7 +25,7 @@ fn smt_subtree_even(c: &mut Criterion) {
|
|||
let entries: Vec<(RpoDigest, Word)> = (0..pair_count)
|
||||
.map(|n| {
|
||||
// A single depth-8 subtree can have a maximum of 255 leaves.
|
||||
let leaf_index = (n / pair_count) * 255;
|
||||
let leaf_index = ((n as f64 / pair_count as f64) * 255.0) as u64;
|
||||
let key = RpoDigest::new([
|
||||
generate_value(&mut seed),
|
||||
ONE,
|
||||
|
@ -45,6 +47,7 @@ fn smt_subtree_even(c: &mut Criterion) {
|
|||
})
|
||||
.collect();
|
||||
leaves.sort();
|
||||
leaves.dedup_by_key(|leaf| leaf.0);
|
||||
leaves
|
||||
},
|
||||
|leaves| {
|
||||
|
@ -64,7 +67,7 @@ fn smt_subtree_random(c: &mut Criterion) {
|
|||
|
||||
let mut group = c.benchmark_group("subtree8-rand");
|
||||
|
||||
for pair_count in (64..=256).step_by(64) {
|
||||
for pair_count in PAIR_COUNTS {
|
||||
let bench_id = BenchmarkId::from_parameter(pair_count);
|
||||
group.bench_with_input(bench_id, &pair_count, |b, &pair_count| {
|
||||
b.iter_batched(
|
||||
|
@ -94,10 +97,6 @@ fn smt_subtree_random(c: &mut Criterion) {
|
|||
})
|
||||
.collect();
|
||||
leaves.sort();
|
||||
let before = leaves.len();
|
||||
leaves.dedup();
|
||||
let after = leaves.len();
|
||||
assert_eq!(before, after);
|
||||
leaves
|
||||
},
|
||||
|leaves| {
|
||||
|
|
Loading…
Add table
Reference in a new issue