我正在使用标准(cargo bench)为 crate 开发一些基准测试.我想暂时限制迭代次数,直到我完成代码.

我知道测量可能不精确,但这只是暂时的.这可能吗?

推荐答案

这是可能的.

看看Criterion Benchmark.在那里你可以找到与你相关的方法,特别是measurement_time.

深入挖掘,你会发现如何使用它们here:

fn bench(c: &mut Criterion) {
    // Setup (construct data, allocate memory, etc)
    c.bench(
        "routines",
        Benchmark::new("routine_1", |b| b.iter(|| routine_1()))
            .with_function("routine_2", |b| b.iter(|| routine_2()))
            .measurement_time(Duration::from_millis(1000))
    );
}

criterion_group!(benches, bench);
criterion_main!(benches);

measurement_time(Duration::from_millis(1000))是你要找的机器人.这实际上将我的特定函数的迭代次数减少了80%.

Rust相关问答推荐

移植带有可变borrow 的C代码-卸载期间错误(nappgui示例)

收集RangeInclusive T到Vec T<><>

如何提高自定义迭代器的`extend`性能

在Rust中,在实现特征`Display`时,如何获取调用方指定的格式?

如何在递归数据 struct 中移动所有权时变异引用?

有没有可能让泛型Rust T总是堆分配的?

定义只有一些字段可以缺省的 struct

在Rust中,Box:ed struct 与普通 struct 在删除顺序上有区别吗?

通过RabbitMQ取消铁 rust 中长时间运行的人造丝任务的策略

正在将带有盒的异步特征迁移到新的异步_fn_in_特征功能

在 Rust 中,在第一个空格上分割字符串一次

如何处理闭包中的生命周期以及作为参数和返回类型的闭包?

如何正确使用git2::Remote::push?

Option<&T> 如何实现复制

实现AsyncWrite到hyper Sender时发生生命周期错误

如何在 Rust 中按 char 对字符串向量进行排序?

在异步 Rust 中,Future 如何确保它只调用最近的 Waker?

为什么在 macOS / iOS 上切换 WiFi 网络时 reqwest 响应会挂起?

第 7.4 章片段中如何定义 `thread_rng`

有没有办法隐藏类型定义?