小编dan*_*rod的帖子

为什么运行 Cargo bench 比运行 Release Build 更快?

我想对我的 Rust 程序进行基准测试,并且正在比较一些替代方案来实现这一点。cargo bench然而,我注意到,当使用crate运行基准测试时bencher,代码的运行速度始终比使用cargo build --release相同代码运行生产构建 ( ) 时要快。例如:

主要代码:

use dot_product;
const N: usize = 1000000;

use std::time;
fn main() {
    let start = time::Instant::now();
    dot_product::rayon_parallel([1; N].to_vec(), [2; N].to_vec());
    println!("Time: {:?}", start.elapsed());
}
Run Code Online (Sandbox Code Playgroud)

平均时间:~20ms

基准代码:

#[macro_use]
extern crate bencher;

use dot_product;

use bencher::Bencher;

const N: usize = 1000000;

fn parallel(bench: &mut Bencher) {
    bench.iter(|| dot_product::rayon_parallel([1; N].to_vec(), [2; N].to_vec()))
}

benchmark_group!(benches, sequential, parallel);
benchmark_main!(benches);
Run Code Online (Sandbox Code Playgroud)

时间:5,006,199 ns/iter (+/- 1,320,975)

我对其他一些程序进行了同样的尝试,并且cargo bench始终给出更快的结果。为什么会发生这种情况?

benchmarking rust

5
推荐指数
1
解决办法
3782
查看次数

标签 统计

benchmarking ×1

rust ×1