Crate criterion_perf_events
source ·Expand description
Perf
measures the selected perf events using the perf interface of the Linux kernel.
Example
extern crate criterion_perf_events;
extern crate perfcnt;
use criterion::{criterion_group, criterion_main, BenchmarkId, Criterion};
use criterion_perf_events::Perf;
use perfcnt::linux::HardwareEventType as Hardware;
use perfcnt::linux::PerfCounterBuilderLinux as Builder;
fn bench(c: &mut Criterion<Perf>) {
let mut group = c.benchmark_group("fibonacci");
for i in 0..20 {
group.bench_function(BenchmarkId::new("slow", i), |b| b.iter(|| fibonacci_slow(i)));
group.bench_function(BenchmarkId::new("fast", i), |b| b.iter(|| fibonacci_fast(i)));
}
group.finish()
}
criterion_group!(
name = my_bench;
config = Criterion::default().with_measurement(Perf::new(Builder::from_hardware_event(Hardware::CacheMisses)));
targets = bench
);
criterion_main!(my_bench);
Structs
perf
implementscriterion::measurement::Measurement
so it can be used in criterion to measure perf events. Create a struct viaPerf::new()
.