Skip to content

Commit

Permalink
bench(MmrSuccessorProof): Make sizes and leaf numbers deterministic
Browse files Browse the repository at this point in the history
  • Loading branch information
aszepieniec committed Aug 6, 2024
1 parent b231a38 commit 59344ba
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 14 deletions.
20 changes: 10 additions & 10 deletions tasm-lib/benchmarks/tasm_lib_mmr_verify_mmr_successor.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,22 +2,22 @@
{
"name": "tasm_lib_mmr_verify_mmr_successor",
"benchmark_result": {
"clock_cycle_count": 486,
"hash_table_height": 894,
"u32_table_height": 8,
"op_stack_table_height": 752,
"ram_table_height": 273
"clock_cycle_count": 23443,
"hash_table_height": 3762,
"u32_table_height": 8200,
"op_stack_table_height": 14596,
"ram_table_height": 473
},
"case": "CommonCase"
},
{
"name": "tasm_lib_mmr_verify_mmr_successor",
"benchmark_result": {
"clock_cycle_count": 9807,
"hash_table_height": 666,
"u32_table_height": 7827,
"op_stack_table_height": 7160,
"ram_table_height": 445
"clock_cycle_count": 70537,
"hash_table_height": 12312,
"u32_table_height": 16727,
"op_stack_table_height": 41962,
"ram_table_height": 893
},
"case": "WorstCase"
}
Expand Down
12 changes: 8 additions & 4 deletions tasm-lib/src/mmr/verify_mmr_successor.rs
Original file line number Diff line number Diff line change
Expand Up @@ -566,16 +566,20 @@ mod test {
bench_case: Option<BenchmarkCase>,
) -> AlgorithmInitialState {
let mut rng: StdRng = SeedableRng::from_seed(seed);
let old_num_leafs = rng.next_u64() & (u64::MAX >> 1);
let old_num_leafs = match bench_case {
Some(BenchmarkCase::WorstCase) => u64::MAX >> 2,
Some(BenchmarkCase::CommonCase) => u32::MAX as u64,
None => rng.next_u64() & (u64::MAX >> 1),
};
let old_peaks = (0..old_num_leafs.count_ones())
.map(|_| rng.gen::<Digest>())
.collect_vec();
let old_mmr = MmrAccumulator::init(old_peaks, old_num_leafs);

let num_new_leafs = match bench_case {
Some(BenchmarkCase::CommonCase) => rng.gen_range(0..10),
Some(BenchmarkCase::WorstCase) => rng.gen_range(0..15),
None => rng.gen_range(0..5),
Some(BenchmarkCase::CommonCase) => 100,
Some(BenchmarkCase::WorstCase) => 1000,
None => 1 << rng.gen_range(0..5),
};
let new_leafs = (0..num_new_leafs)
.map(|_| rng.gen::<Digest>())
Expand Down

0 comments on commit 59344ba

Please sign in to comment.