use std::hint::black_box;
use criterion::{BenchmarkId, Criterion, Throughput, criterion_group, criterion_main};
use ferranet::bench_support::{parse_v3_block, synth_v3_block};
fn parse(c: &mut Criterion) {
let mut group = c.benchmark_group("parse_block");
const FRAMES: u32 = 256;
for &size in &[64usize, 256, 1500] {
let (buf, first, pkts) = synth_v3_block(FRAMES, size);
group.throughput(Throughput::Elements(u64::from(FRAMES)));
group.bench_with_input(BenchmarkId::new("frames", size), &size, |b, _| {
b.iter(|| {
let (frames, bytes) = parse_v3_block(black_box(&buf), first, pkts);
black_box((frames, bytes));
});
});
}
group.finish();
}
criterion_group!(benches, parse);
criterion_main!(benches);