mirror of
https://github.com/hl-archive-node/nanoreth.git
synced 2025-12-06 10:59:55 +00:00
34 lines
1.1 KiB
Rust
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);
|