Skip to content

bruceg/criterion-linux-perf

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

crates.io version docs.rs

criterion-linux-perf

This is a measurement plugin for Criterion.rs that provides measurements using Linux's perf interface.

Supported Events

criterion-linux-perf uses the perf-event crate and supports a subset of the events provided by that crate. If you require more events than the current selection, please open an issue to request additions.

Example

The following code shows on how to count branches when creating an empty string:

use criterion::{criterion_group, criterion_main, Criterion};
use criterion_linux_perf::{PerfMeasurement, PerfMode};

fn timeit(crit: &mut Criterion<PerfMeasurement>) {
    crit.bench_function("String::new", |b| b.iter(|| String::new()));
    crit.bench_function("String::from", |b| b.iter(|| String::from("")));
}

criterion_group!(
    name = benches;
    config = Criterion::default().with_measurement(PerfMeasurement::new(PerfMode::Branches));
    targets = timeit
);
criterion_main!(benches);

Other Crates

I am aware of one other crate that provides the same functionality, criterion-perf-events. While it provides a much wider coverage of the available perf event types, it depends on perfcnt which only builds on Rust nightly. This crate depends on perf-event, which does not have that limitation.

About

Integration of Linux's perf counters for the Rust criterion benchmarking framework

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages