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