cuckoo.rs 1.1 KB

123456789101112131415161718192021222324252627282930
  1. use criterion::{black_box, criterion_group, criterion_main, Criterion};
  2. use cuckoo::cuckoo::{Hasher, Parameters};
  3. use cuckoo::hash::AesHashFunction;
  4. pub fn bench_hash_domain_into_buckets(c: &mut Criterion) {
  5. let number_inputs = 1_000;
  6. let parameters = Parameters::<AesHashFunction<u32>, _>::sample(number_inputs);
  7. let hasher = Hasher::new(parameters);
  8. let domain_size = 100_000;
  9. c.bench_function("Hasher<AesHashFunction>.hash_domain_into_buckets", |b| {
  10. b.iter(|| hasher.hash_domain_into_buckets(black_box(domain_size)))
  11. });
  12. }
  13. pub fn bench_cuckoo_hash_items(c: &mut Criterion) {
  14. let number_inputs = 1_000;
  15. let parameters = Parameters::<AesHashFunction<u32>, _>::sample(number_inputs);
  16. let hasher = Hasher::new(parameters);
  17. let items: Vec<u64> = (0..number_inputs as u64).collect();
  18. c.bench_function("Hasher<AesHashFunction>.cuckoo_hash_items", |b| {
  19. b.iter(|| hasher.cuckoo_hash_items(black_box(&items)))
  20. });
  21. }
  22. criterion_group!(
  23. benches,
  24. bench_hash_domain_into_buckets,
  25. bench_cuckoo_hash_items
  26. );
  27. criterion_main!(benches);