#criterion #perf #linux #benchmark

criterion-linux-perf

一个用于 Criterion.rs 的测量插件,使用 Linux 的 perf 接口进行测量

1 个不稳定版本

0.1.0 2020 年 12 月 22 日

#380性能分析

Apache-2.0/MIT

9KB
135 代码行

criterion-linux-perf

这是一个用于 Criterion.rs 的测量插件,使用 Linux 的 perf 接口进行测量。

支持的事件

criterion-linux-perf 使用 perf-event crate,并支持该 crate 提供的事件子集。如果你需要比当前选择更多的事件,请 打开一个问题 请求添加。

示例

以下代码展示了如何创建一个空字符串时计算分支数量

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);

其他 Crates

我知道还有一个 crate 提供相同的功能,criterion-perf-events。虽然它提供了更广泛的 perf 事件类型覆盖,但它依赖于 perfcnt,这只能在 Rust nightly 上构建。这个 crate 依赖于 perf-event,没有这个限制。

依赖项

~8–19MB
~254K SLoC