use criterion::{criterion_group, criterion_main, Criterion};
fn bench_capability_access(c: &mut Criterion) {
let _warmup = fsys::capability::capabilities();
let mut group = c.benchmark_group("capability_access");
group.bench_function("capabilities_warm", |b| {
b.iter(|| {
criterion::black_box(fsys::capability::capabilities());
});
});
group.bench_function("probe_fresh", |b| {
b.iter(|| {
criterion::black_box(fsys::capability::probe_capabilities_fresh());
});
});
group.finish();
}
fn bench_pci_address_round_trip(c: &mut Criterion) {
let mut group = c.benchmark_group("pci_address");
let addr = fsys::PciAddress::new(0, 0x1f, 0x03, 2);
group.bench_function("to_canonical", |b| {
b.iter(|| {
criterion::black_box(addr.to_canonical());
});
});
group.bench_function("parse_four_segment", |b| {
b.iter(|| {
criterion::black_box(fsys::PciAddress::parse("0000:1f:03.2"));
});
});
group.finish();
}
criterion_group!(
benches,
bench_capability_access,
bench_pci_address_round_trip
);
criterion_main!(benches);