相关疑难解决方法(0)

如何对改变设置数据的代码进行基准测试?

iter每次iter运行外部的设置代码时,内置基准测试工具的当前实现似乎多次在调用内运行代码.当基准测试的代码修改设置数据时,基准测试代码的后续迭代不再对同一事物进行基准测试.

作为一个具体的例子,我正在测试从以下方法中删除值所需的速度Vec:

#![feature(test)]

extern crate test;

use test::Bencher;

#[bench]
fn clearing_a_vector(b: &mut Bencher) {
    let mut things = vec![1];
    b.iter(|| {
        assert!(!things.is_empty());
        things.clear();
    });
}
Run Code Online (Sandbox Code Playgroud)

这将失败:

test clearing_a_vector ... thread 'main' panicked at 'assertion failed: !things.is_empty()', src/lib.rs:11
Run Code Online (Sandbox Code Playgroud)

push对向量iter执行元素的类似基准测试表明,闭包执行了近9.8亿次(取决于闭包的速度).结果可能是非常如果有跑单,做什么,我希望还有数百万人不误导.

使用Rust nightly 1.19.0进行测试(f89d8d184 2017-05-30)

benchmarking rust

6
推荐指数
1
解决办法
183
查看次数

标签 统计

benchmarking ×1

rust ×1