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 verifying key deser benchmark #258

Merged
merged 1 commit into from
Jun 7, 2024
Merged

Conversation

rymnc
Copy link
Contributor

@rymnc rymnc commented Jun 6, 2024

Benchmarking deserialization of verifying key. Need to merge this before #257 to check if performance gains are being made.

Copy link

github-actions bot commented Jun 6, 2024

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%

Copy link

github-actions bot commented Jun 6, 2024

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%

@rymnc rymnc requested a review from seemenkina June 6, 2024 13:52
})
}

// Computes the verification key from its JSON serialization
fn vk_from_json(vk: &str) -> Result<VerifyingKey<Curve>> {
let json: Value = serde_json::from_str(vk)?;
to_verifying_key(json)
to_verifying_key(&json)
}

// Computes the verification key from a bytes vector containing its JSON serialization
fn vk_from_vector(vk: &[u8]) -> Result<VerifyingKey<Curve>> {
Copy link
Contributor

Choose a reason for hiding this comment

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

Here we don't need to serialise into json at all if we will use ark deserialise

@rymnc rymnc merged commit dd5edd6 into master Jun 7, 2024
10 checks passed
@rymnc rymnc deleted the circuit-deser-benches branch June 7, 2024 09:46
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.

None yet

2 participants