我使用文档中提到的“bench”和Rust nightly开始使用Rust编写基准测试。为了在测试和基准测试之间共享代码,我添加了
现在我想使用Rust 稳定版 进行基准测试。 由于"bencher" crate已经3年没有更新了,似乎"criterion" crate是默认选择。为此,我需要将代码移动到"./benches/my_benchmark.rs"。 如何在测试和基准测试之间共享
Option<&mut Bencher>
,并直接运行代码块或通过传递bencher来运行(“src/lib.rs”)。fn block_requests(bencher_option: Option<&mut Bencher>, ...) {
...
let mut block = || {
... // shared
}
match bencher_option {
// regular test
None => block(),
// benchmark
Some(bencher) => {
bencher.iter(block);
}
}
...
}
// call from test
#[test]
fn test_smth() {
block_requests(None, &requests, &mut matcher);
}
// call from benchmark
#[bench]
fn bench_smth(b: &mut Bencher) {
block_requests(Some(b), &requests, &mut matcher);
}
现在我想使用Rust 稳定版 进行基准测试。 由于"bencher" crate已经3年没有更新了,似乎"criterion" crate是默认选择。为此,我需要将代码移动到"./benches/my_benchmark.rs"。 如何在测试和基准测试之间共享
block_requests(..)
?
use mycrate::block_requests
- undefined