面试题答案
一键面试使用的工具
在Rust中,通常使用criterion
库来进行性能测试。criterion
是一个功能强大的基准测试框架,它能够提供详细的性能指标和可视化报告。
简单步骤
- 添加依赖:
在
Cargo.toml
文件中添加criterion
库依赖。
[dev-dependencies]
criterion = "0.4"
- 编写测试代码:
例如,对
Vec
的性能测试:
use criterion::{black_box, criterion_group, criterion_main, Criterion};
fn vec_push_perf(c: &mut Criterion) {
let mut group = c.benchmark_group("vec_push");
for size in [100, 1000, 10000].iter() {
group.bench_with_input(
format!("push_{}", size),
size,
|b, &size| {
b.iter(|| {
let mut vec = Vec::new();
for _ in 0..size {
vec.push(black_box(0));
}
})
},
);
}
group.finish();
}
criterion_group!(benches, vec_push_perf);
criterion_main!(benches);
对HashMap
的性能测试:
use std::collections::HashMap;
use criterion::{black_box, criterion_group, criterion_main, Criterion};
fn hashmap_insert_perf(c: &mut Criterion) {
let mut group = c.benchmark_group("hashmap_insert");
for size in [100, 1000, 10000].iter() {
group.bench_with_input(
format!("insert_{}", size),
size,
|b, &size| {
b.iter(|| {
let mut map = HashMap::new();
for i in 0..size {
map.insert(black_box(i), black_box(i));
}
})
},
);
}
group.finish();
}
criterion_group!(benches, hashmap_insert_perf);
criterion_main!(benches);
- 运行测试:
在项目根目录下执行
cargo bench
命令,criterion
会运行编写的基准测试,并输出详细的性能报告。报告中会包含每次操作的平均时间、中位数、标准偏差等信息,帮助分析性能。