transaction_id_benchmark.rs 812 B

1234567891011121314151617181920212223242526272829
  1. use cashu::nuts::nut01::SecretKey;
  2. use cashu::PublicKey;
  3. use cdk_common::wallet::TransactionId;
  4. use criterion::{criterion_group, criterion_main, BenchmarkId, Criterion};
  5. fn generate_public_keys(count: usize) -> Vec<PublicKey> {
  6. (0..count)
  7. .map(|_| SecretKey::generate().public_key())
  8. .collect()
  9. }
  10. fn bench_transaction_id(c: &mut Criterion) {
  11. let mut group = c.benchmark_group("TransactionId::new");
  12. let sizes = vec![1, 10, 50, 100, 500];
  13. for size in sizes {
  14. let public_keys = generate_public_keys(size);
  15. group.bench_with_input(BenchmarkId::from_parameter(size), &size, |b, _| {
  16. b.iter(|| TransactionId::new(public_keys.clone()));
  17. });
  18. }
  19. group.finish();
  20. }
  21. criterion_group!(benches, bench_transaction_id);
  22. criterion_main!(benches);