2022-08-03 20:04:37 -07:00
|
|
|
// use std::convert::TryFrom;
|
2021-12-13 14:11:07 -08:00
|
|
|
|
2022-08-03 20:04:37 -07:00
|
|
|
// use criterion::{criterion_group, criterion_main, BenchmarkId, Criterion, Throughput};
|
|
|
|
// use rand::thread_rng;
|
2020-07-03 15:23:28 -07:00
|
|
|
|
2022-08-03 20:04:37 -07:00
|
|
|
// use frost_ristretto255::*;
|
2020-07-03 15:23:28 -07:00
|
|
|
|
2022-08-03 20:04:37 -07:00
|
|
|
// struct Item {
|
|
|
|
// vk: VerifyingKey,
|
|
|
|
// sig: Signature,
|
|
|
|
// }
|
2020-07-04 17:18:06 -07:00
|
|
|
|
2022-08-03 20:04:37 -07:00
|
|
|
// fn sigs_with_distinct_keys() -> impl Iterator<Item = Item> {
|
|
|
|
// std::iter::repeat_with(|| {
|
|
|
|
// let msg = b"Bench";
|
|
|
|
// let sk = SigningKey::new(thread_rng());
|
|
|
|
// let vk = VerifyingKey::from(&sk).into();
|
|
|
|
// let sig = sk.sign(thread_rng(), &msg[..]);
|
|
|
|
// Item { vk, sig }
|
|
|
|
// })
|
|
|
|
// }
|
2020-07-03 15:23:28 -07:00
|
|
|
|
2022-08-03 20:04:37 -07:00
|
|
|
// fn bench_batch_verify(c: &mut Criterion) {
|
|
|
|
// let mut group = c.benchmark_group("Batch Verification");
|
|
|
|
// for &n in [8usize, 16, 24, 32, 40, 48, 56, 64].iter() {
|
|
|
|
// group.throughput(Throughput::Elements(n as u64));
|
2020-07-03 15:23:28 -07:00
|
|
|
|
2022-08-03 20:04:37 -07:00
|
|
|
// let sigs = sigs_with_distinct_keys().take(n).collect::<Vec<_>>();
|
2020-07-03 15:23:28 -07:00
|
|
|
|
2022-08-03 20:04:37 -07:00
|
|
|
// group.bench_with_input(
|
|
|
|
// BenchmarkId::new("Unbatched verification", n),
|
|
|
|
// &sigs,
|
|
|
|
// |b, sigs| {
|
|
|
|
// b.iter(|| {
|
|
|
|
// for item in sigs.iter() {
|
|
|
|
// let msg = b"Bench";
|
2022-02-09 14:18:21 -08:00
|
|
|
|
2022-08-03 20:04:37 -07:00
|
|
|
// let Item { vk, sig } = item;
|
|
|
|
// {
|
|
|
|
// vk.verify(msg, sig);
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
// })
|
|
|
|
// },
|
|
|
|
// );
|
2020-07-03 15:23:28 -07:00
|
|
|
|
2022-08-03 20:04:37 -07:00
|
|
|
// group.bench_with_input(
|
|
|
|
// BenchmarkId::new("Batched verification", n),
|
|
|
|
// &sigs,
|
|
|
|
// |b, sigs| {
|
|
|
|
// b.iter(|| {
|
|
|
|
// let mut batch = batch::Verifier::new();
|
|
|
|
// for item in sigs.iter() {
|
|
|
|
// let msg = b"Bench";
|
2022-02-09 14:18:21 -08:00
|
|
|
|
2022-08-03 20:04:37 -07:00
|
|
|
// let Item { vk, sig } = item;
|
|
|
|
// {
|
|
|
|
// batch.queue((*vk, *sig, msg));
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
// batch.verify(thread_rng())
|
|
|
|
// })
|
|
|
|
// },
|
|
|
|
// );
|
|
|
|
// }
|
|
|
|
// group.finish();
|
|
|
|
// }
|
2020-07-03 15:23:28 -07:00
|
|
|
|
2022-08-03 20:04:37 -07:00
|
|
|
// criterion_group!(benches, bench_batch_verify);
|
|
|
|
// criterion_main!(benches);
|
|
|
|
|
|
|
|
fn main() {}
|