在Debian系统上进行Rust代码性能测试,可按以下步骤操作,主要工具为Criterion.rs(推荐)和perf:
在Cargo.toml
中添加依赖:
[dev-dependencies]
criterion = "0.5" # 使用最新版本
在benches/
目录下创建测试文件(如my_benchmark.rs
):
use criterion::{black_box, criterion_group, criterion_main, Criterion};
fn fibonacci(n: u64) -> u64 {
match n {
0 | 1 => n,
_ => fibonacci(n - 1) + fibonacci(n - 2),
}
}
fn bench_fibonacci(c: &mut Criterion) {
c.bench_function("fib 20", |b| b.iter(|| fibonacci(black_box(20))));
}
criterion_group!(benches, bench_fibonacci);
criterion_main!(benches);
black_box
防止编译器优化被测代码。执行命令:
cargo bench
结果会输出至终端,并生成HTML报告(target/criterion/report/index.html
),包含时间、统计分析和图表。
sudo apt-get install linux-tools-common linux-tools-$(uname -r)
运行程序并记录性能数据:
perf record -g ./target/release/your_program
生成报告:
perf report -n --stdio
或生成火焰图(需安装flamegraph
工具):
perf script | ./stackcollapse-perf.pl | ./flamegraph.pl > perf.svg
perf
使用。black_box
避免编译器优化掉测试代码。通过上述工具,可精准定位Rust代码的性能瓶颈,辅助优化。