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

fix(trees): inconsistencies in override_range #250

Closed rymnc closed 3 months ago

rymnc commented 3 months ago

Fixes override_range as was done in pmtree previously.

github-actions[bot] commented 3 months ago

Benchmark for ecd8edb

Click to view benchmark | Test | Base | PR | % | |------|--------------|------------------|---| | FullMerkleTree::compute_root | 0.0±0.00ns | 0.0±0.00ns | NaN% | | FullMerkleTree::delete | **850.4±16.84ns** | 869.2±9.05ns | **+2.21%** | | FullMerkleTree::get | **0.0±0.00ns** | 3.4±0.06ns | **+Infinity%** | | FullMerkleTree::get_subtree_root | **0.6±0.02ns** | 3.6±0.12ns | **+500.00%** | | FullMerkleTree::override_range | 2.1±0.12µs | **1328.7±18.31ns** | **-36.73%** | | FullMerkleTree::set | **864.9±6.02ns** | 878.9±29.31ns | **+1.62%** | | OptimalMerkleTree::compute_root | 1022.5±11.02ns | **1011.0±12.21ns** | **-1.12%** | | OptimalMerkleTree::delete | **995.1±12.23ns** | 1005.4±9.65ns | **+1.04%** | | OptimalMerkleTree::get | **18.6±0.51ns** | 23.9±0.67ns | **+28.49%** | | OptimalMerkleTree::get_subtree_root | **18.5±0.17ns** | 24.2±0.32ns | **+30.81%** | | OptimalMerkleTree::override_range | 5.0±0.10µs | **4.2±0.08µs** | **-16.00%** | | OptimalMerkleTree::set | **997.9±5.47ns** | 1007.9±17.22ns | **+1.00%** |
github-actions[bot] commented 3 months ago

Benchmark for ecd8edb

Click to view benchmark | Test | Base | PR | % | |------|--------------|------------------|---| | FullMerkleTree::::full_height_gen | 19.6±0.89ms | **18.0±0.69ms** | **-8.16%** | | OptimalMerkleTree::::full_height_gen | 566.4±12.69µs | 575.2±13.12µs | +1.55% | | Pmtree::compute_root | 0.0±0.00ns | 0.0±0.00ns | NaN% | | Pmtree::get | 357.1±11.21ns | 359.6±6.33ns | +0.70% | | Pmtree::get_subtree_root | 505.3±10.50ns | 500.2±12.39ns | -1.01% | | Pmtree::override_range | 252.1±5.55µs | 249.6±6.88µs | -0.99% | | Pmtree::set | 56.3±1.40µs | 56.6±1.21µs | +0.53% | | Pmtree:delete | 57.2±2.35µs | 56.0±1.45µs | -2.10% | | Set/FullMerkleTree::::set/1 | **562.2±13.85µs** | 575.4±9.82µs | **+2.35%** | | Set/FullMerkleTree::::set/10 | **5.6±0.07ms** | 5.8±0.07ms | **+3.57%** | | Set/FullMerkleTree::::set/100 | 56.9±0.69ms | 57.5±0.71ms | +1.05% | | Set/FullMerkleTree::::set_range/1 | 560.7±8.28µs | 567.4±12.92µs | +1.19% | | Set/FullMerkleTree::::set_range/10 | **770.3±8.00µs** | 783.4±13.54µs | **+1.70%** | | Set/FullMerkleTree::::set_range/100 | 3.4±0.04ms | 3.4±0.04ms | 0.00% | | Set/OptimalMerkleTree::::set/1 | 566.5±13.94µs | 573.5±11.02µs | +1.24% | | Set/OptimalMerkleTree::::set/10 | 5.7±0.06ms | 5.7±0.12ms | 0.00% | | Set/OptimalMerkleTree::::set/100 | 56.6±0.62ms | 56.5±1.42ms | -0.18% | | Set/OptimalMerkleTree::::set_range/1 | **564.3±8.44µs** | 574.0±13.73µs | **+1.72%** | | Set/OptimalMerkleTree::::set_range/10 | 5.6±0.08ms | 5.6±0.12ms | 0.00% | | Set/OptimalMerkleTree::::set_range/100 | 57.1±0.52ms | 56.8±1.19ms | -0.53% | | zkey::upload_from_folder | 3.5±0.03s | **3.4±0.03s** | **-2.86%** |