#benchmarking #performance #primitive #macro

mybench

简单(且非常原始)的性能分析宏

8 个版本

0.1.8 2020年6月4日
0.1.7 2020年6月4日
0.1.4 2020年5月23日

性能分析 中排名 #256

MIT 许可协议

5KB

mybench

Crates.io

简单(且非常原始)的性能分析宏。

使用场景

  • bench!(wrapper, "Prompt")wrapper 函数内的代码进行 10,000 次的平均执行时间计算。

  • bench!(wrapper, number_of_repetitions, "Prompt")wrapper 函数内的代码进行 number_of_repetitions 次的平均执行时间计算。

结果显示为 filename:row:col 'Prompt' xxx.yy ms

示例


#[macro_use]
extern crate mybench;

#[test]
fn bench_ok() {
    // with wrapper function
    bench!(wrapper, "Prompt 1");
    bench!(wrapper, 100_000, "Prompt 2");

    // or you may use closure
    bench!(|| {
        for i in 0..1000 {
            let _ = i*i;
        }
    }, 
    100_000, "With closure");
}

fn wrapper() {
    for i in 0..1000 {
        let _ = i*i;
    }
}

输出


running 1 test
tests\mybench.rs:6:5 'Prompt 1' 29.581µs
tests\mybench.rs:7:5 'Prompt 2' 29.693µs
test bench_ok ... ok

如果你没有看到 stdout,请尝试这个: cargo test -- --show-output

如果你看到


test bench_ok ... test bench_ok has been running for over 60 seconds

别担心,这是一个中间结果(测试尚未完成)。稍等片刻,让测试结束。

无运行时依赖