面试题答案
一键面试- 添加依赖:
在
Cargo.toml
文件中添加criterion
依赖,例如:
[dev-dependencies]
criterion = "0.4"
- 创建基准测试案例:
在
src
目录下创建benches
目录,在该目录下创建一个.rs
文件,例如my_benchmark.rs
。 编写基准测试函数,示例代码如下:
use criterion::{criterion_group, criterion_main, Criterion};
fn add(a: i32, b: i32) -> i32 {
a + b
}
fn bench_add(c: &mut Criterion) {
c.bench_function("add", |b| b.iter(|| add(1, 2)));
}
criterion_group!(benches, bench_add);
criterion_main!(benches);
上述代码中,add
是要测试的函数,bench_add
是基准测试函数,criterion_group
和criterion_main
是宏,用于组织和运行基准测试。
3. 运行测试:
在项目根目录下执行命令:
cargo bench
- 分析测试结果:
运行
cargo bench
后,会在终端输出基准测试结果,例如:
test my_benchmark::benches::bench_add ... bench: 1 ns/iter (+/- 0)
这里显示了函数add
每次调用的平均时间。还可以在target/criterion
目录下查看更详细的HTML报告,打开该目录下的index.html
文件,能以可视化的方式分析不同测试函数的性能数据,比如执行时间的分布、标准差等信息,从而更好地对比和评估代码性能。