vacp2p / zerokit

A set of Zero Knowledge modules, written in Rust and designed to be used in other system programming environments.
Apache License 2.0
130 stars 7 forks source link

chore(rln): add verifying key deser benchmark #258

Closed rymnc closed 3 months ago

rymnc commented 3 months ago

Benchmarking deserialization of verifying key. Need to merge this before https://github.com/vacp2p/zerokit/pull/257 to check if performance gains are being made.

github-actions[bot] commented 3 months ago

Benchmark for 2e39249

Click to view benchmark | Test | Base | PR | % | |------|--------------|------------------|---| | FullMerkleTree::compute_root | 0.0±0.00ns | 0.0±0.00ns | NaN% | | FullMerkleTree::delete | 852.6±12.63ns | 843.7±11.53ns | -1.04% | | FullMerkleTree::get | 0.0±0.00ns | 0.0±0.00ns | NaN% | | FullMerkleTree::get_empty_leaves_indices | **7.4±0.08ns** | 7.5±0.20ns | **+1.35%** | | FullMerkleTree::get_subtree_root | 0.9±0.01ns | 0.9±0.02ns | 0.00% | | FullMerkleTree::override_range | 1308.6±45.74ns | 1323.9±20.81ns | +1.17% | | FullMerkleTree::set | 851.6±12.86ns | 846.7±17.86ns | -0.58% | | OptimalMerkleTree::compute_root | 996.0±14.97ns | 1006.9±15.37ns | +1.09% | | OptimalMerkleTree::delete | 997.5±18.04ns | 1005.7±15.76ns | +0.82% | | OptimalMerkleTree::get | **23.0±0.34ns** | 23.7±0.38ns | **+3.04%** | | OptimalMerkleTree::get_empty_leaves_indices | 7.1±0.16ns | 7.1±0.13ns | 0.00% | | OptimalMerkleTree::get_subtree_root | 24.1±0.37ns | 24.3±0.63ns | +0.83% | | OptimalMerkleTree::override_range | 4.1±0.07µs | 4.1±0.13µs | 0.00% | | OptimalMerkleTree::set | 994.9±12.78ns | 1004.8±11.50ns | +1.00% |
github-actions[bot] commented 3 months ago

Benchmark for 2e39249

Click to view benchmark | Test | Base | PR | % | |------|--------------|------------------|---| | FullMerkleTree::::full_height_gen | **15.5±0.19ms** | 15.7±0.62ms | **+1.29%** | | OptimalMerkleTree::::full_height_gen | 578.5±21.03µs | 576.3±4.71µs | -0.38% | | Pmtree::compute_root | 0.0±0.00ns | 0.0±0.00ns | NaN% | | Pmtree::get | **332.9±5.49ns** | 349.2±4.50ns | **+4.90%** | | Pmtree::get_empty_leaves_indices | 8.4±0.09ns | 8.4±0.08ns | 0.00% | | Pmtree::get_subtree_root | 473.5±4.73ns | 473.8±5.86ns | +0.06% | | Pmtree::override_range | 237.0±5.03µs | 234.3±3.75µs | -1.14% | | Pmtree::set | 54.6±0.73µs | 54.6±0.70µs | 0.00% | | Pmtree:delete | 55.2±0.36µs | **54.5±0.23µs** | **-1.27%** | | Set/FullMerkleTree::::set/1 | 560.6±8.78µs | **552.1±4.78µs** | **-1.52%** | | Set/FullMerkleTree::::set/10 | 5.5±0.01ms | 5.5±0.01ms | 0.00% | | Set/FullMerkleTree::::set/100 | 55.5±0.10ms | 55.5±1.15ms | 0.00% | | Set/FullMerkleTree::::set_range/1 | 559.7±3.19µs | **556.2±8.05µs** | **-0.63%** | | Set/FullMerkleTree::::set_range/10 | 757.1±3.31µs | 758.2±4.04µs | +0.15% | | Set/FullMerkleTree::::set_range/100 | 3.3±0.01ms | 3.3±0.04ms | 0.00% | | Set/OptimalMerkleTree::::set/1 | 554.6±7.69µs | 555.7±9.61µs | +0.20% | | Set/OptimalMerkleTree::::set/10 | **5.5±0.01ms** | 5.6±0.02ms | **+1.82%** | | Set/OptimalMerkleTree::::set/100 | 55.7±0.23ms | 55.8±0.36ms | +0.18% | | Set/OptimalMerkleTree::::set_range/1 | 557.2±6.41µs | 553.2±4.32µs | -0.72% | | Set/OptimalMerkleTree::::set_range/10 | 5.6±0.02ms | **5.5±0.02ms** | **-1.79%** | | Set/OptimalMerkleTree::::set_range/100 | 55.7±0.22ms | 55.7±0.16ms | 0.00% | | circuit::to_verifying_key | 1452.3±19.28µs | N/A | N/A | | zkey::upload_from_folder | 3.3±0.00s | 3.3±0.01s | 0.00% |