1 个不稳定版本
0.1.1 | 2023年9月19日 |
---|---|
0.1.0 |
|
#163 in 性能分析
130 每月下载量
18KB
376 代码行
Benchy
Benchy 是一个用于对长时间运行的任务进行基准测试的 Rust crate。与优化于高频、纳秒级性能的 Criterion 等其他基准测试库不同,Benchy 专为需要大量时间执行的任务而设计。它提供了一个灵活且可定制的环境,允许您设置自定义迭代次数,甚至测量内存使用指标。
功能
- 自定义迭代次数:根据需要运行基准测试的次数。
- 内存使用指标:了解您的代码使用了多少内存。
- 环境变量配置:使用环境变量实时自定义基准测试。
- JSON 输出:轻松将基准测试结果导出为 JSON 以进行进一步分析。
安装
cargo add benchy
快速入门
benches/bench.rs
:
use benchy::{benchmark, BenchmarkRun};
#[benchmark]
fn fibonacci_single(b: &mut BenchmarkRun) {
let mut x = 0;
let mut y = 1;
b.run(|| {
for _ in 0..1_000_000 {
let temp = x;
x = y;
y = temp + y;
}
});
}
#[benchmark("Fibonacci", [
("1 million iterations", 1_000_000),
("2 million iterations", 2_000_000),
])]
fn fibonacci_parametrized(b: &mut BenchmarkRun, iterations: usize) {
let mut x = 0;
let mut y = 1;
b.run(|| {
for _ in 0..iterations {
let temp = x;
x = y;
y = temp + y;
}
});
}
benchy::main!(fibonacci_single, fibonacci_parametrized);
Cargo.toml
:
[[bench]]
name = "bench"
harness = false
对于更高级的使用,请查看利用此 crate 的 zk-bench 仓库,或参考 文档。
环境变量
BENCHY_QUICK
(默认:false) - 如果为 true,则仅运行每个基准测试的第一个参数。BENCHY_OUTPUT_DIR
(默认:None) - 输出 JSON 基准测试结果的目录。BENCHY_MAX_DEFAULT_ITERATIONS_DURATION
(默认:10s) - 单个基准测试默认(10)迭代的最大总持续时间。
依赖关系
~2–10MB
~106K SLoC