Skip to content

Merkle tree benchmark efforts#308

Draft
Ben-PH wants to merge 24 commits into
masterfrom
lean_merkle_tree_benchie-ben
Draft

Merkle tree benchmark efforts#308
Ben-PH wants to merge 24 commits into
masterfrom
lean_merkle_tree_benchie-ben

Conversation

@Ben-PH
Copy link
Copy Markdown

@Ben-PH Ben-PH commented May 6, 2025

#307

Notes

@Ben-PH Ben-PH self-assigned this May 6, 2025
@Ben-PH Ben-PH added the track:zerokit Zerokit track (Applied ZK/Explorations) label May 6, 2025
@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 6, 2025

Benchmark for 2dc3d30

Click to view benchmark
Test Base PR %
FullMerkleTree::compute_root 0.0±0.00ns 0.0±0.00ns NaN%
FullMerkleTree::delete 874.7±7.73ns 878.7±18.25ns +0.46%
FullMerkleTree::get 0.0±0.00ns 0.0±0.00ns NaN%
FullMerkleTree::get_empty_leaves_indices 7.8±0.07ns 7.5±0.17ns -3.85%
FullMerkleTree::get_subtree_root 3.8±0.13ns 10.3±0.01ns +171.05%
FullMerkleTree::override_range 1360.9±18.00ns 1361.5±18.49ns +0.04%
FullMerkleTree::set 868.1±7.70ns 872.7±14.02ns +0.53%
OptimalMerkleTree::compute_root 1001.4±12.00ns 1017.2±12.03ns +1.58%
OptimalMerkleTree::delete 1009.6±16.32ns 1010.1±14.24ns +0.05%
OptimalMerkleTree::get 22.6±0.28ns 30.4±0.14ns +34.51%
OptimalMerkleTree::get_empty_leaves_indices 7.5±0.12ns 7.5±0.10ns 0.00%
OptimalMerkleTree::get_subtree_root 24.0±0.20ns 31.9±0.19ns +32.92%
OptimalMerkleTree::override_range 1157.5±24.61ns 1158.0±25.75ns +0.04%
OptimalMerkleTree::set 1003.6±12.51ns 1014.1±24.72ns +1.05%
poseidon Fr/Array hash/10 141.9±10.15µs 68.8 KElem/sec N/A N/A
poseidon Fr/Array hash/100 1507.8±13.71µs 64.8 KElem/sec N/A N/A
poseidon Fr/Array hash/1000 15.2±0.04ms 64.5 KElem/sec N/A N/A
poseidon Fr/Single hash 13.8±0.02µs 69.1 MElem/sec N/A N/A

@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 6, 2025

Benchmark for 2dc3d30

Click to view benchmark
Test Base PR %
FullMerkleTree::::full_height_gen 12.2±0.12ms 12.5±0.09ms +2.46%
OptimalMerkleTree::::full_height_gen 782.1±5.41µs 779.8±7.86µs -0.29%
Pmtree::compute_root 0.0±0.00ns 0.0±0.00ns NaN%
Pmtree::get 379.3±4.33ns 369.1±5.28ns -2.69%
Pmtree::get_empty_leaves_indices 8.7±0.10ns 8.8±0.23ns +1.15%
Pmtree::get_subtree_root 545.2±6.62ns 535.7±9.97ns -1.74%
Pmtree::override_range 229.1±3.26µs 226.0±10.33µs -1.35%
Pmtree::set 50.5±0.49µs 50.7±0.92µs +0.40%
Pmtree:delete 50.6±0.41µs 50.8±1.22µs +0.40%
Set/FullMerkleTree::::set/1 513.8±2.70µs 514.5±4.35µs +0.14%
Set/FullMerkleTree::::set/10 5.2±0.00ms 5.2±0.01ms 0.00%
Set/FullMerkleTree::::set/100 51.8±0.08ms 51.7±0.18ms -0.19%
Set/FullMerkleTree::::set_range/1 514.3±4.01µs 514.4±5.08µs +0.02%
Set/FullMerkleTree::::set_range/10 703.5±2.66µs 705.1±15.32µs +0.23%
Set/FullMerkleTree::::set_range/100 3.1±0.01ms 3.1±0.02ms 0.00%
Set/OptimalMerkleTree::::set/1 515.0±2.34µs 515.0±3.99µs 0.00%
Set/OptimalMerkleTree::::set/10 5.3±0.04ms 5.3±0.05ms 0.00%
Set/OptimalMerkleTree::::set/100 53.2±0.11ms 53.2±0.15ms 0.00%
Set/OptimalMerkleTree::::set_range/1 515.0±3.34µs 514.9±2.54µs -0.02%
Set/OptimalMerkleTree::::set_range/10 705.1±4.56µs 705.4±5.85µs +0.04%
Set/OptimalMerkleTree::::set_range/100 3.0±0.01ms 3.0±0.01ms 0.00%
zkey::zkey_from_raw 677.8±0.18ms 680.1±3.66ms +0.34%

@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 6, 2025

Benchmark for 2dc3d30

Click to view benchmark
Test Base PR %
FullMerkleTree::::full_height_gen 13.6±0.21ms 13.5±0.18ms -0.74%
OptimalMerkleTree::::full_height_gen 798.6±6.63µs 804.6±7.59µs +0.75%
Pmtree::compute_root 0.0±0.00ns 0.0±0.00ns NaN%
Pmtree::get 372.1±14.32ns 372.0±6.10ns -0.03%
Pmtree::get_empty_leaves_indices 8.7±0.12ns 8.7±0.15ns 0.00%
Pmtree::get_subtree_root 545.1±9.37ns 548.2±7.34ns +0.57%
Pmtree::override_range 232.0±4.27µs 233.8±3.19µs +0.78%
Pmtree::set 50.0±0.44µs 50.2±1.28µs +0.40%
Pmtree:delete 50.3±1.73µs 50.2±0.92µs -0.20%
Set/FullMerkleTree::::set/1 514.1±4.85µs 515.9±7.15µs +0.35%
Set/FullMerkleTree::::set/10 5.2±0.03ms 5.2±0.04ms 0.00%
Set/FullMerkleTree::::set/100 51.8±0.17ms 51.7±0.12ms -0.19%
Set/FullMerkleTree::::set_range/1 510.9±4.71µs 514.2±2.55µs +0.65%
Set/FullMerkleTree::::set_range/10 703.4±5.73µs 704.0±6.45µs +0.09%
Set/FullMerkleTree::::set_range/100 3.1±0.22ms 3.1±0.05ms 0.00%
Set/OptimalMerkleTree::::set/1 514.7±5.56µs 516.0±4.41µs +0.25%
Set/OptimalMerkleTree::::set/10 5.3±0.25ms 5.4±0.25ms +1.89%
Set/OptimalMerkleTree::::set/100 53.0±0.14ms 53.1±0.08ms +0.19%
Set/OptimalMerkleTree::::set_range/1 515.1±4.99µs 517.4±5.53µs +0.45%
Set/OptimalMerkleTree::::set_range/10 705.8±6.14µs 708.6±5.01µs +0.40%
Set/OptimalMerkleTree::::set_range/100 3.0±0.01ms 3.0±0.02ms 0.00%
arkzkey::arkzkey_from_raw_uncompressed 5.8±0.02ms 5.8±0.03ms 0.00%
zkey::zkey_from_raw 681.4±0.47ms 682.2±2.37ms +0.12%

Base automatically changed from add-rust-overlay to master May 15, 2025 12:04
@Ben-PH Ben-PH force-pushed the lean_merkle_tree_benchie-ben branch from de9d672 to 113e1bb Compare May 15, 2025 15:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

track:zerokit Zerokit track (Applied ZK/Explorations)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants