ZeroTierOne/iblt/benches/merge.rs
Erik Hollensbe 95d28c0fb9
Benchmarks for as_bytes/from_bytes, clone, list
Signed-off-by: Erik Hollensbe <git@hollensbe.org>
2022-04-18 18:24:57 -07:00

78 lines
1.8 KiB
Rust

use criterion::{criterion_group, criterion_main, Criterion};
use iblt::IBLT;
const CAPACITY: usize = 4096;
type IBLT32 = IBLT<[u8; 32], CAPACITY, 3>;
type IBLT16 = IBLT<[u8; 16], CAPACITY, 3>;
type IBLT8 = IBLT<[u8; 8], CAPACITY, 3>;
pub fn criterion_benchmark(c: &mut Criterion) {
let mut orig = IBLT32::new();
let mut new = IBLT32::new();
for _ in 0..CAPACITY {
let mut v = [0u8; 32];
v.fill_with(rand::random);
orig.insert(&v);
}
for _ in 0..CAPACITY {
let mut v = [0u8; 32];
v.fill_with(rand::random);
new.insert(&v);
}
c.bench_function("merge 32", |b| {
b.iter(|| {
let mut new2 = new.clone();
orig.subtract(&new);
new2.subtract(&orig);
})
});
let mut orig = IBLT16::new();
let mut new = IBLT16::new();
for _ in 0..CAPACITY {
let mut v = [0u8; 16];
v.fill_with(rand::random);
orig.insert(&v);
}
for _ in 0..CAPACITY {
let mut v = [0u8; 16];
v.fill_with(rand::random);
new.insert(&v);
}
c.bench_function("merge 16", |b| {
b.iter(|| {
let mut new2 = new.clone();
orig.subtract(&new);
new2.subtract(&orig);
})
});
let mut orig = IBLT8::new();
let mut new = IBLT8::new();
for _ in 0..CAPACITY {
let mut v = [0u8; 8];
v.fill_with(rand::random);
orig.insert(&v);
}
for _ in 0..CAPACITY {
let mut v = [0u8; 8];
v.fill_with(rand::random);
new.insert(&v);
}
c.bench_function("merge 8", |b| {
b.iter(|| {
let mut new2 = new.clone();
orig.subtract(&new);
new2.subtract(&orig);
})
});
}
criterion_group!(benches, criterion_benchmark);
criterion_main!(benches);