Files
nanoreth/crates/storage/db/benches/encoding_crit.rs
2022-12-09 23:14:07 -08:00

34 lines
1.1 KiB
Rust

use criterion::{black_box, criterion_group, criterion_main, Criterion};
/// Benchmarks the encoding and decoding of `IntegerList` using criterion.
macro_rules! impl_criterion_encoding_benchmark {
($name:tt) => {
pub fn criterion_benchmark(c: &mut Criterion) {
let mut size = 0;
c.bench_function(stringify!($name), |b| {
b.iter(|| {
let encoded_size =
reth_db::tables::codecs::fuzz::IntegerList::encode_and_decode(black_box(
reth_primitives::IntegerList::default(),
))
.0;
if size == 0 {
size = encoded_size;
}
})
});
println!("Size (bytes): `{size}`");
}
criterion_group!(benches, criterion_benchmark);
criterion_main!(benches);
};
}
#[cfg(not(feature = "bench-postcard"))]
impl_criterion_encoding_benchmark!(scale);
#[cfg(feature = "bench-postcard")]
impl_criterion_encoding_benchmark!(postcard);