add benchmark

This commit is contained in:
seemenkina 2024-07-25 12:43:38 +03:00
parent e6238fd722
commit 15f16c6ba7
No known key found for this signature in database
2 changed files with 41 additions and 0 deletions

View File

@ -94,3 +94,7 @@ harness = false
[[bench]]
name = "poseidon_tree_benchmark"
harness = false
[[bench]]
name = "serialize_benchmark"
harness = false

View File

@ -0,0 +1,37 @@
use criterion::{criterion_group, criterion_main, Criterion};
use rln::circuit::TEST_TREE_HEIGHT;
use rln::protocol::*;
pub fn rln_witness_benchmark(c: &mut Criterion) {
let rln_witness = random_rln_witness(TEST_TREE_HEIGHT);
c.bench_function("rln_witness::full_cycle", |b| {
b.iter(|| {
let ser = serialize_witness(&rln_witness).unwrap();
let (deser, _) = deserialize_witness(&ser).unwrap();
let rln_witness_json = rln_witness_to_json(&deser).unwrap();
let _ = rln_witness_from_json(rln_witness_json).unwrap();
})
});
c.bench_function("rln_witness::serialize_cycle", |b| {
b.iter(|| {
let ser = serialize_witness(&rln_witness).unwrap();
let _ = deserialize_witness(&ser).unwrap();
})
});
c.bench_function("rln_witness::json_cycle", |b| {
b.iter(|| {
let rln_witness_json = rln_witness_to_json(&rln_witness).unwrap();
let _ = rln_witness_from_json(rln_witness_json).unwrap();
})
});
}
criterion_group! {
name = benches;
config = Criterion::default().measurement_time(std::time::Duration::from_secs(10));
targets = rln_witness_benchmark
}
criterion_main!(benches);