Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore(rln): add uncompressed key and benches #269

Merged
merged 3 commits into from
Oct 1, 2024
Merged

Conversation

seemenkina
Copy link
Contributor

@seemenkina seemenkina commented Sep 13, 2024

Release v0.6.0 (issue #263)

Regarding the use of arkzkey the results are as follows:

  • using uncompressed version roughly reduces program runtime by a factor of (bench results: Release v0.6.0 #263 (comment) )
  • while defining the key in the code does not give any time gain, but at the same time it heavily loads RAM because the data size is too large to simply define it in files.

As a result, leave reading from file, but use uncompressed arkzkey

@seemenkina seemenkina self-assigned this Sep 13, 2024
@seemenkina seemenkina mentioned this pull request Sep 13, 2024
13 tasks
Copy link

Benchmark for 33f7787

Click to view benchmark
Test Base PR %
FullMerkleTree::compute_root 0.0±0.00ns 0.0±0.00ns NaN%
FullMerkleTree::delete 854.1±14.26ns 874.8±84.21ns +2.42%
FullMerkleTree::get 3.5±0.06ns 3.4±0.06ns -2.86%
FullMerkleTree::get_empty_leaves_indices 7.1±0.10ns 7.1±0.13ns 0.00%
FullMerkleTree::get_subtree_root 3.7±0.10ns 3.6±0.21ns -2.70%
FullMerkleTree::override_range 1330.7±20.57ns 1346.2±48.37ns +1.16%
FullMerkleTree::set 864.8±23.36ns 858.2±33.08ns -0.76%
OptimalMerkleTree::compute_root 992.5±13.33ns 993.8±4.89ns +0.13%
OptimalMerkleTree::delete 989.5±10.69ns 989.3±10.74ns -0.02%
OptimalMerkleTree::get 22.5±0.27ns 22.5±0.29ns 0.00%
OptimalMerkleTree::get_empty_leaves_indices 7.1±0.14ns 7.1±0.12ns 0.00%
OptimalMerkleTree::get_subtree_root 23.8±0.41ns 23.9±0.37ns +0.42%
OptimalMerkleTree::override_range 4.1±0.07µs 4.1±0.19µs 0.00%
OptimalMerkleTree::set 986.7±5.92ns 991.2±32.73ns +0.46%

Copy link

Benchmark for 33f7787

Click to view benchmark
Test Base PR %
FullMerkleTree::::full_height_gen 13.8±0.11ms 12.9±0.05ms -6.52%
OptimalMerkleTree::::full_height_gen 615.9±2.80µs 574.6±7.44µs -6.71%
Pmtree::compute_root 0.0±0.00ns 0.0±0.00ns NaN%
Pmtree::get 331.6±4.88ns 343.4±2.64ns +3.56%
Pmtree::get_empty_leaves_indices 8.7±0.08ns 8.7±0.15ns 0.00%
Pmtree::get_subtree_root 477.6±4.15ns 495.6±3.66ns +3.77%
Pmtree::override_range 239.4±3.41µs 233.4±4.36µs -2.51%
Pmtree::set 54.1±0.35µs 54.5±0.80µs +0.74%
Pmtree:delete 54.1±0.59µs 54.1±0.50µs 0.00%
Set/FullMerkleTree::::set/1 558.3±1.80µs 564.0±3.84µs +1.02%
Set/FullMerkleTree::::set/10 5.6±0.01ms 5.5±0.03ms -1.79%
Set/FullMerkleTree::::set/100 55.7±0.15ms 55.6±0.06ms -0.18%
Set/FullMerkleTree::::set_range/1 556.0±6.68µs 567.0±12.03µs +1.98%
Set/FullMerkleTree::::set_range/10 756.5±6.24µs 751.3±5.15µs -0.69%
Set/FullMerkleTree::::set_range/100 3.3±0.01ms 3.2±0.01ms -3.03%
Set/OptimalMerkleTree::::set/1 560.2±3.06µs 563.4±2.05µs +0.57%
Set/OptimalMerkleTree::::set/10 5.6±0.01ms 5.6±0.01ms 0.00%
Set/OptimalMerkleTree::::set/100 55.8±0.34ms 55.4±0.09ms -0.72%
Set/OptimalMerkleTree::::set_range/1 557.2±2.93µs 565.7±6.19µs +1.53%
Set/OptimalMerkleTree::::set_range/10 5.6±0.01ms 5.6±0.01ms 0.00%
Set/OptimalMerkleTree::::set_range/100 56.0±0.08ms 55.4±0.12ms -1.07%
vk::vk_from_ark_serialized 1618.5±6.86ns 1666.3±28.42ns +2.95%
zkey::zkey_from_raw 3.4±0.00s 3.4±0.00s 0.00%

Copy link

Benchmark for 33f7787

Click to view benchmark
Test Base PR %
FullMerkleTree::::full_height_gen 15.3±0.15ms 15.8±0.22ms +3.27%
OptimalMerkleTree::::full_height_gen 577.3±8.56µs 577.6±35.30µs +0.05%
Pmtree::compute_root 0.0±0.00ns 0.0±0.00ns NaN%
Pmtree::get 344.0±5.02ns 343.4±6.59ns -0.17%
Pmtree::get_empty_leaves_indices 8.4±0.12ns 8.4±0.12ns 0.00%
Pmtree::get_subtree_root 497.3±10.58ns 493.3±8.17ns -0.80%
Pmtree::override_range 230.0±3.42µs 236.6±3.05µs +2.87%
Pmtree::set 54.3±1.04µs 54.3±0.88µs 0.00%
Pmtree:delete 54.1±0.83µs 54.4±0.60µs +0.55%
Set/FullMerkleTree::::set/1 554.4±19.40µs 552.8±6.25µs -0.29%
Set/FullMerkleTree::::set/10 5.6±0.02ms 5.5±0.02ms -1.79%
Set/FullMerkleTree::::set/100 56.1±0.22ms 55.3±0.15ms -1.43%
Set/FullMerkleTree::::set_range/1 560.9±6.23µs 554.4±3.30µs -1.16%
Set/FullMerkleTree::::set_range/10 761.0±7.39µs 753.4±6.16µs -1.00%
Set/FullMerkleTree::::set_range/100 3.3±0.01ms 3.3±0.01ms 0.00%
Set/OptimalMerkleTree::::set/1 556.5±3.14µs 553.9±3.35µs -0.47%
Set/OptimalMerkleTree::::set/10 5.6±0.01ms 5.6±0.01ms 0.00%
Set/OptimalMerkleTree::::set/100 55.9±0.96ms 55.6±0.08ms -0.54%
Set/OptimalMerkleTree::::set_range/1 555.3±3.12µs 560.3±6.26µs +0.90%
Set/OptimalMerkleTree::::set_range/10 5.6±0.01ms 5.6±0.01ms 0.00%
Set/OptimalMerkleTree::::set_range/100 55.7±0.13ms 55.5±0.14ms -0.36%
arkzkey::arkzkey_from_raw_compressed 333.5±0.75ms N/A N/A
arkzkey::arkzkey_from_raw_uncompressed 5.9±0.02ms N/A N/A
vk::vk_from_ark_serialized 1598.7±10.88ns 1607.2±15.01ns +0.53%
zkey::zkey_from_raw 8.7±0.02µs 3.4±0.01s +39080359.77%

Copy link

Benchmark for ec3be75

Click to view benchmark
Test Base PR %
FullMerkleTree::compute_root 0.0±0.00ns 0.0±0.00ns NaN%
FullMerkleTree::delete 861.3±9.59ns 865.4±14.52ns +0.48%
FullMerkleTree::get 3.5±0.09ns 3.5±0.05ns 0.00%
FullMerkleTree::get_empty_leaves_indices 7.1±0.11ns 7.1±0.12ns 0.00%
FullMerkleTree::get_subtree_root 3.7±0.11ns 3.7±0.08ns 0.00%
FullMerkleTree::override_range 1348.4±11.73ns 1364.6±14.03ns +1.20%
FullMerkleTree::set 857.7±7.23ns 864.0±10.89ns +0.73%
OptimalMerkleTree::compute_root 997.9±36.10ns 993.1±8.83ns -0.48%
OptimalMerkleTree::delete 1006.4±5.04ns 1001.4±30.87ns -0.50%
OptimalMerkleTree::get 22.1±0.33ns 24.5±0.25ns +10.86%
OptimalMerkleTree::get_empty_leaves_indices 7.1±0.13ns 7.1±0.05ns 0.00%
OptimalMerkleTree::get_subtree_root 23.9±0.35ns 23.8±0.27ns -0.42%
OptimalMerkleTree::override_range 4.1±0.07µs 4.2±0.29µs +2.44%
OptimalMerkleTree::set 1007.9±14.99ns 994.3±56.29ns -1.35%

Copy link

Benchmark for ec3be75

Click to view benchmark
Test Base PR %
FullMerkleTree::::full_height_gen 13.7±0.07ms 14.2±0.05ms +3.65%
OptimalMerkleTree::::full_height_gen 574.3±4.69µs 573.2±4.33µs -0.19%
Pmtree::compute_root 0.0±0.00ns 0.0±0.00ns NaN%
Pmtree::get 330.3±3.89ns 344.5±62.88ns +4.30%
Pmtree::get_empty_leaves_indices 8.7±0.15ns 8.7±0.09ns 0.00%
Pmtree::get_subtree_root 480.8±5.64ns 484.0±6.03ns +0.67%
Pmtree::override_range 234.3±2.59µs 230.6±2.61µs -1.58%
Pmtree::set 54.1±0.77µs 55.2±4.31µs +2.03%
Pmtree:delete 54.0±0.19µs 54.2±0.66µs +0.37%
Set/FullMerkleTree::::set/1 556.1±9.83µs 553.6±3.49µs -0.45%
Set/FullMerkleTree::::set/10 5.6±0.02ms 5.6±0.02ms 0.00%
Set/FullMerkleTree::::set/100 55.6±0.45ms 55.7±0.15ms +0.18%
Set/FullMerkleTree::::set_range/1 553.8±3.10µs 556.4±6.32µs +0.47%
Set/FullMerkleTree::::set_range/10 756.5±4.94µs 756.0±2.61µs -0.07%
Set/FullMerkleTree::::set_range/100 3.3±0.04ms 3.2±0.00ms -3.03%
Set/OptimalMerkleTree::::set/1 552.0±2.21µs 558.0±6.66µs +1.09%
Set/OptimalMerkleTree::::set/10 5.6±0.01ms 5.7±0.03ms +1.79%
Set/OptimalMerkleTree::::set/100 55.6±0.11ms 56.1±0.10ms +0.90%
Set/OptimalMerkleTree::::set_range/1 554.1±6.07µs 557.9±3.31µs +0.69%
Set/OptimalMerkleTree::::set_range/10 5.5±0.01ms 5.6±0.02ms +1.82%
Set/OptimalMerkleTree::::set_range/100 55.6±0.14ms 55.8±0.08ms +0.36%
vk::vk_from_ark_serialized 1618.7±12.30ns 1606.1±8.60ns -0.78%
zkey::zkey_from_raw 3.4±0.00s 3.4±0.01s 0.00%

Copy link

Benchmark for ec3be75

Click to view benchmark
Test Base PR %
FullMerkleTree::::full_height_gen 14.2±0.08ms 14.2±0.08ms 0.00%
OptimalMerkleTree::::full_height_gen 581.1±13.27µs 577.2±6.94µs -0.67%
Pmtree::compute_root 0.0±0.00ns 0.0±0.00ns NaN%
Pmtree::get 340.4±4.65ns 338.9±5.26ns -0.44%
Pmtree::get_empty_leaves_indices 8.4±0.54ns 8.4±0.12ns 0.00%
Pmtree::get_subtree_root 490.1±6.45ns 494.7±8.79ns +0.94%
Pmtree::override_range 238.5±4.38µs 231.3±3.39µs -3.02%
Pmtree::set 54.1±0.76µs 54.4±1.14µs +0.55%
Pmtree:delete 54.1±0.80µs 54.3±0.64µs +0.37%
Set/FullMerkleTree::::set/1 557.0±6.35µs 557.4±17.75µs +0.07%
Set/FullMerkleTree::::set/10 5.6±0.02ms 5.5±0.02ms -1.79%
Set/FullMerkleTree::::set/100 55.9±0.11ms 55.5±0.20ms -0.72%
Set/FullMerkleTree::::set_range/1 557.1±6.22µs 554.2±3.30µs -0.52%
Set/FullMerkleTree::::set_range/10 757.0±2.27µs 753.7±4.55µs -0.44%
Set/FullMerkleTree::::set_range/100 3.3±0.01ms 3.3±0.01ms 0.00%
Set/OptimalMerkleTree::::set/1 557.0±4.08µs 563.2±3.94µs +1.11%
Set/OptimalMerkleTree::::set/10 5.6±0.01ms 5.6±0.01ms 0.00%
Set/OptimalMerkleTree::::set/100 55.6±0.13ms 56.2±0.13ms +1.08%
Set/OptimalMerkleTree::::set_range/1 556.2±3.85µs 560.1±4.27µs +0.70%
Set/OptimalMerkleTree::::set_range/10 5.6±0.24ms 5.6±0.02ms 0.00%
Set/OptimalMerkleTree::::set_range/100 55.7±0.13ms 55.9±0.16ms +0.36%
arkzkey::arkzkey_from_raw_compressed 331.5±0.87ms N/A N/A
arkzkey::arkzkey_from_raw_uncompressed 6.0±0.01ms N/A N/A
vk::vk_from_ark_serialized 1612.2±9.22ns 1582.6±12.65ns -1.84%
zkey::zkey_from_raw 8.7±0.02µs 3.4±0.00s +39080359.77%

Copy link

Benchmark for 11a5386

Click to view benchmark
Test Base PR %
FullMerkleTree::compute_root 0.0±0.00ns 0.0±0.00ns NaN%
FullMerkleTree::delete 858.6±10.02ns 854.5±14.47ns -0.48%
FullMerkleTree::get 3.4±0.03ns 3.5±0.06ns +2.94%
FullMerkleTree::get_empty_leaves_indices 7.2±0.44ns 7.1±0.15ns -1.39%
FullMerkleTree::get_subtree_root 3.7±0.09ns 3.7±0.08ns 0.00%
FullMerkleTree::override_range 1340.1±8.01ns 1329.2±11.14ns -0.81%
FullMerkleTree::set 854.3±21.73ns 861.8±8.84ns +0.88%
OptimalMerkleTree::compute_root 1001.8±19.33ns 995.6±7.05ns -0.62%
OptimalMerkleTree::delete 992.5±10.71ns 1000.2±16.36ns +0.78%
OptimalMerkleTree::get 22.2±0.26ns 22.5±0.17ns +1.35%
OptimalMerkleTree::get_empty_leaves_indices 7.1±0.13ns 7.1±0.17ns 0.00%
OptimalMerkleTree::get_subtree_root 23.8±0.36ns 23.8±0.40ns 0.00%
OptimalMerkleTree::override_range 4.1±0.06µs 4.1±0.07µs 0.00%
OptimalMerkleTree::set 990.9±18.18ns 996.8±13.71ns +0.60%

Copy link

Benchmark for 11a5386

Click to view benchmark
Test Base PR %
FullMerkleTree::::full_height_gen 15.5±0.14ms 15.8±0.13ms +1.94%
OptimalMerkleTree::::full_height_gen 579.3±4.00µs 579.4±5.10µs +0.02%
Pmtree::compute_root 0.0±0.00ns 0.0±0.00ns NaN%
Pmtree::get 331.7±3.20ns 336.1±5.95ns +1.33%
Pmtree::get_empty_leaves_indices 8.7±0.10ns 8.7±0.16ns 0.00%
Pmtree::get_subtree_root 479.5±8.56ns 486.4±7.45ns +1.44%
Pmtree::override_range 235.3±4.21µs 238.3±4.02µs +1.27%
Pmtree::set 54.2±0.52µs 54.1±0.79µs -0.18%
Pmtree:delete 54.2±0.40µs 54.1±0.45µs -0.18%
Set/FullMerkleTree::::set/1 556.8±3.49µs 554.2±5.97µs -0.47%
Set/FullMerkleTree::::set/10 5.6±0.02ms 5.5±0.09ms -1.79%
Set/FullMerkleTree::::set/100 55.5±0.08ms 55.5±0.55ms 0.00%
Set/FullMerkleTree::::set_range/1 554.0±4.53µs 555.3±3.16µs +0.23%
Set/FullMerkleTree::::set_range/10 753.6±5.19µs 753.8±7.55µs +0.03%
Set/FullMerkleTree::::set_range/100 3.2±0.01ms 3.3±0.01ms +3.13%
Set/OptimalMerkleTree::::set/1 552.6±4.56µs 555.5±6.44µs +0.52%
Set/OptimalMerkleTree::::set/10 5.5±0.02ms 5.6±0.03ms +1.82%
Set/OptimalMerkleTree::::set/100 55.3±0.15ms 55.5±0.19ms +0.36%
Set/OptimalMerkleTree::::set_range/1 553.3±2.55µs 555.0±3.48µs +0.31%
Set/OptimalMerkleTree::::set_range/10 5.5±0.01ms 5.5±0.02ms 0.00%
Set/OptimalMerkleTree::::set_range/100 55.6±0.91ms 55.3±0.16ms -0.54%
vk::vk_from_ark_serialized 1622.8±19.52ns 1613.3±9.59ns -0.59%
zkey::zkey_from_raw 3.4±0.01s 3.4±0.01s 0.00%

Copy link

Benchmark for 11a5386

Click to view benchmark
Test Base PR %
FullMerkleTree::::full_height_gen 13.5±0.07ms 14.6±0.17ms +8.15%
OptimalMerkleTree::::full_height_gen 581.7±22.89µs 575.1±7.05µs -1.13%
Pmtree::compute_root 0.0±0.00ns 0.0±0.00ns NaN%
Pmtree::get 339.8±2.98ns 344.7±4.31ns +1.44%
Pmtree::get_empty_leaves_indices 8.4±0.14ns 8.4±0.09ns 0.00%
Pmtree::get_subtree_root 499.4±25.05ns 502.4±7.11ns +0.60%
Pmtree::override_range 238.3±5.78µs 230.2±2.60µs -3.40%
Pmtree::set 54.1±0.68µs 54.2±0.63µs +0.18%
Pmtree:delete 54.1±1.01µs 54.4±1.54µs +0.55%
Set/FullMerkleTree::::set/1 554.6±3.49µs 555.1±7.18µs +0.09%
Set/FullMerkleTree::::set/10 5.6±0.02ms 5.6±0.01ms 0.00%
Set/FullMerkleTree::::set/100 55.6±0.13ms 55.5±0.45ms -0.18%
Set/FullMerkleTree::::set_range/1 556.8±1.95µs 555.9±5.67µs -0.16%
Set/FullMerkleTree::::set_range/10 756.7±6.65µs 753.6±6.72µs -0.41%
Set/FullMerkleTree::::set_range/100 3.3±0.00ms 3.3±0.02ms 0.00%
Set/OptimalMerkleTree::::set/1 555.4±5.97µs 555.8±6.69µs +0.07%
Set/OptimalMerkleTree::::set/10 5.6±0.01ms 5.6±0.16ms 0.00%
Set/OptimalMerkleTree::::set/100 56.0±0.13ms 55.3±0.24ms -1.25%
Set/OptimalMerkleTree::::set_range/1 557.1±4.01µs 556.7±7.47µs -0.07%
Set/OptimalMerkleTree::::set_range/10 5.6±0.02ms 5.6±0.27ms 0.00%
Set/OptimalMerkleTree::::set_range/100 55.8±0.14ms 55.5±0.12ms -0.54%
arkzkey::arkzkey_from_raw_compressed 331.7±1.35ms N/A N/A
arkzkey::arkzkey_from_raw_uncompressed 6.0±0.02ms N/A N/A
vk::vk_from_ark_serialized 1635.7±14.19ns 1595.5±6.37ns -2.46%
zkey::zkey_from_raw 8.7±0.03µs 3.4±0.01s +39080359.77%

@seemenkina seemenkina marked this pull request as ready for review September 18, 2024 05:43
Copy link

Benchmark for 196d4a6

Click to view benchmark
Test Base PR %
FullMerkleTree::compute_root 0.0±0.00ns 0.0±0.00ns NaN%
FullMerkleTree::delete 859.5±9.70ns 859.5±11.78ns 0.00%
FullMerkleTree::get 3.5±0.08ns 3.4±0.11ns -2.86%
FullMerkleTree::get_empty_leaves_indices 7.1±0.12ns 7.1±0.05ns 0.00%
FullMerkleTree::get_subtree_root 3.8±0.12ns 3.7±0.10ns -2.63%
FullMerkleTree::override_range 1339.1±14.93ns 1343.3±22.56ns +0.31%
FullMerkleTree::set 881.4±7.84ns 872.6±11.53ns -1.00%
OptimalMerkleTree::compute_root 991.6±11.17ns 992.6±21.19ns +0.10%
OptimalMerkleTree::delete 1003.6±19.72ns 989.2±14.40ns -1.43%
OptimalMerkleTree::get 22.4±0.20ns 22.5±0.33ns +0.45%
OptimalMerkleTree::get_empty_leaves_indices 7.1±0.11ns 7.1±0.13ns 0.00%
OptimalMerkleTree::get_subtree_root 23.7±0.36ns 23.8±0.39ns +0.42%
OptimalMerkleTree::override_range 4.1±0.17µs 4.1±0.08µs 0.00%
OptimalMerkleTree::set 1000.0±4.95ns 1001.2±34.31ns +0.12%

Copy link

Benchmark for 196d4a6

Click to view benchmark
Test Base PR %
FullMerkleTree::::full_height_gen 13.9±0.06ms 13.6±0.05ms -2.16%
OptimalMerkleTree::::full_height_gen 579.7±7.15µs 576.2±6.54µs -0.60%
Pmtree::compute_root 0.0±0.00ns 0.0±0.00ns NaN%
Pmtree::get 341.4±1.90ns 355.7±4.71ns +4.19%
Pmtree::get_empty_leaves_indices 8.7±0.07ns 8.7±0.09ns 0.00%
Pmtree::get_subtree_root 481.7±8.60ns 481.5±9.65ns -0.04%
Pmtree::override_range 231.7±3.74µs 236.3±3.12µs +1.99%
Pmtree::set 54.6±0.30µs 54.5±0.70µs -0.18%
Pmtree:delete 54.8±0.48µs 54.5±0.47µs -0.55%
Set/FullMerkleTree::::set/1 556.9±2.86µs 554.1±3.23µs -0.50%
Set/FullMerkleTree::::set/10 5.6±0.05ms 5.6±0.03ms 0.00%
Set/FullMerkleTree::::set/100 55.9±0.18ms 55.6±0.12ms -0.54%
Set/FullMerkleTree::::set_range/1 555.9±2.15µs 558.3±3.10µs +0.43%
Set/FullMerkleTree::::set_range/10 759.2±6.71µs 756.1±4.04µs -0.41%
Set/FullMerkleTree::::set_range/100 3.3±0.01ms 3.3±0.01ms 0.00%
Set/OptimalMerkleTree::::set/1 557.4±7.69µs 555.1±10.47µs -0.41%
Set/OptimalMerkleTree::::set/10 5.6±0.02ms 5.6±0.01ms 0.00%
Set/OptimalMerkleTree::::set/100 55.9±0.13ms 55.6±0.43ms -0.54%
Set/OptimalMerkleTree::::set_range/1 554.5±4.39µs 559.0±3.59µs +0.81%
Set/OptimalMerkleTree::::set_range/10 5.6±0.02ms 5.6±0.02ms 0.00%
Set/OptimalMerkleTree::::set_range/100 55.6±0.14ms 55.7±0.12ms +0.18%
vk::vk_from_ark_serialized 1608.1±6.92ns 1609.1±15.34ns +0.06%
zkey::zkey_from_raw 3.5±0.00s 3.4±0.00s -2.86%

Copy link

Benchmark for 196d4a6

Click to view benchmark
Test Base PR %
FullMerkleTree::::full_height_gen 14.6±0.13ms 14.4±0.13ms -1.37%
OptimalMerkleTree::::full_height_gen 588.0±15.33µs 585.5±12.07µs -0.43%
Pmtree::compute_root 0.0±0.00ns 0.0±0.00ns NaN%
Pmtree::get 347.9±5.96ns 345.4±5.05ns -0.72%
Pmtree::get_empty_leaves_indices 8.5±0.63ns 8.4±0.14ns -1.18%
Pmtree::get_subtree_root 508.6±21.24ns 496.3±9.11ns -2.42%
Pmtree::override_range 237.9±5.57µs 234.6±6.55µs -1.39%
Pmtree::set 54.4±0.34µs 54.7±0.75µs +0.55%
Pmtree:delete 54.8±3.06µs 55.0±0.74µs +0.36%
Set/FullMerkleTree::::set/1 557.4±4.43µs 557.0±7.86µs -0.07%
Set/FullMerkleTree::::set/10 5.6±0.01ms 5.6±0.02ms 0.00%
Set/FullMerkleTree::::set/100 56.1±0.61ms 55.7±0.14ms -0.71%
Set/FullMerkleTree::::set_range/1 557.4±3.28µs 561.0±39.49µs +0.65%
Set/FullMerkleTree::::set_range/10 760.9±6.66µs 760.0±21.75µs -0.12%
Set/FullMerkleTree::::set_range/100 3.3±0.01ms 3.3±0.00ms 0.00%
Set/OptimalMerkleTree::::set/1 567.7±15.56µs 559.3±17.41µs -1.48%
Set/OptimalMerkleTree::::set/10 5.6±0.02ms 5.6±0.04ms 0.00%
Set/OptimalMerkleTree::::set/100 56.4±3.49ms 56.1±2.76ms -0.53%
Set/OptimalMerkleTree::::set_range/1 562.5±17.99µs 557.2±6.38µs -0.94%
Set/OptimalMerkleTree::::set_range/10 5.6±0.02ms 5.6±0.02ms 0.00%
Set/OptimalMerkleTree::::set_range/100 56.1±0.33ms 56.1±0.96ms 0.00%
arkzkey::arkzkey_from_raw_compressed 335.8±2.38ms N/A N/A
arkzkey::arkzkey_from_raw_uncompressed 6.0±0.04ms N/A N/A
vk::vk_from_ark_serialized 1601.8±5.40ns 1609.1±33.00ns +0.46%
zkey::zkey_from_raw 8.8±0.10µs 3.4±0.01s +38636263.64%

// the upload speed from the `rln_final.zkey` or `rln_final.arkzkey` file is calculated
pub fn key_load_benchmark(c: &mut Criterion) {
let zkey = ZKEY_BYTES.to_vec();
pub fn zkey_load_benchmark(c: &mut Criterion) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Any docs as before

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This comment is not necessary because we are only testing zkey loading right now. Arkzkey in another file

Copy link

Benchmark for fdab40f

Click to view benchmark
Test Base PR %
FullMerkleTree::compute_root 0.0±0.00ns 0.0±0.00ns NaN%
FullMerkleTree::delete 861.1±12.02ns 856.9±6.39ns -0.49%
FullMerkleTree::get 3.5±0.10ns 3.5±0.06ns 0.00%
FullMerkleTree::get_empty_leaves_indices 7.2±0.10ns 7.2±0.07ns 0.00%
FullMerkleTree::get_subtree_root 3.7±0.07ns 3.8±0.07ns +2.70%
FullMerkleTree::override_range 1339.9±9.56ns 1340.0±21.19ns +0.01%
FullMerkleTree::set 865.3±7.48ns 866.1±6.76ns +0.09%
OptimalMerkleTree::compute_root 999.3±21.92ns 998.4±13.64ns -0.09%
OptimalMerkleTree::delete 998.8±16.69ns 999.7±12.09ns +0.09%
OptimalMerkleTree::get 22.2±0.16ns 22.6±0.11ns +1.80%
OptimalMerkleTree::get_empty_leaves_indices 7.2±0.11ns 7.2±0.12ns 0.00%
OptimalMerkleTree::get_subtree_root 24.0±0.23ns 23.9±0.37ns -0.42%
OptimalMerkleTree::override_range 4.1±0.06µs 4.1±0.15µs 0.00%
OptimalMerkleTree::set 993.1±6.20ns 996.7±15.29ns +0.36%

Copy link

Benchmark for fdab40f

Click to view benchmark
Test Base PR %
FullMerkleTree::::full_height_gen 14.5±0.17ms 14.0±0.09ms -3.45%
OptimalMerkleTree::::full_height_gen 583.1±8.82µs 580.7±6.99µs -0.41%
Pmtree::compute_root 0.0±0.00ns 0.0±0.00ns NaN%
Pmtree::get 330.7±5.94ns 333.4±2.77ns +0.82%
Pmtree::get_empty_leaves_indices 8.7±0.15ns 8.7±0.09ns 0.00%
Pmtree::get_subtree_root 488.5±4.45ns 480.7±4.32ns -1.60%
Pmtree::override_range 234.7±3.19µs 243.7±3.34µs +3.83%
Pmtree::set 54.8±0.31µs 54.4±0.30µs -0.73%
Pmtree:delete 54.6±0.63µs 54.6±1.31µs 0.00%
Set/FullMerkleTree::::set/1 557.2±4.83µs 554.4±2.98µs -0.50%
Set/FullMerkleTree::::set/10 5.6±0.01ms 5.6±0.02ms 0.00%
Set/FullMerkleTree::::set/100 55.7±0.11ms 56.0±0.21ms +0.54%
Set/FullMerkleTree::::set_range/1 557.0±5.01µs 560.1±3.77µs +0.56%
Set/FullMerkleTree::::set_range/10 756.6±4.02µs 760.4±10.71µs +0.50%
Set/FullMerkleTree::::set_range/100 3.3±0.02ms 3.3±0.02ms 0.00%
Set/OptimalMerkleTree::::set/1 557.8±6.59µs 557.5±5.80µs -0.05%
Set/OptimalMerkleTree::::set/10 5.6±0.02ms 5.6±0.01ms 0.00%
Set/OptimalMerkleTree::::set/100 55.8±0.42ms 55.8±0.11ms 0.00%
Set/OptimalMerkleTree::::set_range/1 555.4±2.23µs 555.8±2.39µs +0.07%
Set/OptimalMerkleTree::::set_range/10 5.6±0.02ms 5.6±0.06ms 0.00%
Set/OptimalMerkleTree::::set_range/100 55.8±0.17ms 55.9±0.25ms +0.18%
vk::vk_from_ark_serialized 1641.4±46.94ns 1633.0±16.20ns -0.51%
zkey::zkey_from_raw 3.4±0.00s 3.4±0.00s 0.00%

Copy link

Benchmark for fdab40f

Click to view benchmark
Test Base PR %
FullMerkleTree::::full_height_gen 13.5±0.15ms 14.2±0.15ms +5.19%
OptimalMerkleTree::::full_height_gen 575.7±6.55µs 570.9±13.97µs -0.83%
Pmtree::compute_root 0.0±0.00ns 0.0±0.00ns NaN%
Pmtree::get 338.9±5.81ns 348.6±6.37ns +2.86%
Pmtree::get_empty_leaves_indices 8.3±0.13ns 8.3±0.18ns 0.00%
Pmtree::get_subtree_root 491.9±10.39ns 488.0±8.66ns -0.79%
Pmtree::override_range 229.7±5.73µs 229.5±4.49µs -0.09%
Pmtree::set 54.4±0.58µs 53.5±1.18µs -1.65%
Pmtree:delete 54.5±0.37µs 53.6±1.27µs -1.65%
Set/FullMerkleTree::::set/1 558.2±8.34µs 551.5±10.57µs -1.20%
Set/FullMerkleTree::::set/10 5.6±0.06ms 5.4±0.12ms -3.57%
Set/FullMerkleTree::::set/100 55.3±0.83ms 55.3±0.86ms 0.00%
Set/FullMerkleTree::::set_range/1 554.1±5.73µs 547.0±12.56µs -1.28%
Set/FullMerkleTree::::set_range/10 750.9±12.81µs 745.8±14.19µs -0.68%
Set/FullMerkleTree::::set_range/100 3.3±0.04ms 3.3±0.04ms 0.00%
Set/OptimalMerkleTree::::set/1 551.9±11.81µs 554.0±13.17µs +0.38%
Set/OptimalMerkleTree::::set/10 5.6±0.09ms 5.5±0.09ms -1.79%
Set/OptimalMerkleTree::::set/100 55.4±0.90ms 55.4±0.99ms 0.00%
Set/OptimalMerkleTree::::set_range/1 549.2±14.05µs 553.3±12.39µs +0.75%
Set/OptimalMerkleTree::::set_range/10 5.6±0.06ms 5.5±0.11ms -1.79%
Set/OptimalMerkleTree::::set_range/100 55.2±0.86ms 55.4±0.98ms +0.36%
arkzkey::arkzkey_from_raw_compressed 329.6±1.88ms N/A N/A
arkzkey::arkzkey_from_raw_uncompressed 5.9±0.04ms N/A N/A
vk::vk_from_ark_serialized 1624.2±25.30ns 1584.2±24.84ns -2.46%
zkey::zkey_from_raw 8.6±0.06µs 3.4±0.01s +39534783.72%

@seemenkina seemenkina merged commit b9d2703 into master Oct 1, 2024
15 checks passed
@seemenkina seemenkina deleted the arkzkey-benchmark branch October 1, 2024 07:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants