Cargo Bench运行时Criterion基准测试函数被忽略的问题求助
Cargo Bench运行时Criterion基准测试函数被忽略的问题求助
大家好,我最近在用Criterion做Rust基准测试的时候碰到了一个棘手的问题:运行cargo bench之后,明明写好的基准测试函数好像被完全忽略了,根本没有执行测量逻辑。下面是我的具体情况,麻烦各位帮忙排查下问题:
项目结构
project_root ├── benches │ └── my_benchmark.rs
基准测试代码(my_benchmark.rs)
use criterion::{criterion_group, criterion_main, Criterion}; fn factorial(n: u64) -> u64 { (1..=n).product() } fn my_benchmark(c: &mut Criterion) { c.bench_function("factorial 20", |b| b.iter(|| factorial(20))); } criterion_group!(benches, my_benchmark); criterion_main!(benches);
运行cargo bench的输出结果
Finished `bench` profile [optimized] target(s) in 0.07s Running unittests src/main.rs (target/release/deps/fwaas-cbcff0a631d9e180) running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running benches/my_benchmark.rs (target/release/deps/my_benchmark-eddc0eabec0786a7) running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
从输出能看到,不管是主程序的单元测试还是bench目录下的基准测试,都显示“running 0 tests”,完全没有执行我写的factorial 20基准测试。
其他相关信息
- target目录内容:
ls target/ CACHEDIR.TAG release tmp
- Cargo.toml中的依赖配置:
[dev-dependencies] criterion = "0.5"
- 使用的Cargo版本:
cargo 1.82.0
有没有大佬能指点下,到底是哪里出问题了?为什么我的基准测试函数没有被识别和执行呢?
备注:内容来源于stack exchange,提问作者Alex Barysevich
相关产品推荐
相关产品推荐

