13个版本 (7个重大更新)

0.8.3 2024年5月4日
0.7.0 2024年4月21日

#82性能分析

Download history 177/week @ 2024-05-03 34/week @ 2024-05-10 70/week @ 2024-05-17 46/week @ 2024-05-24 23/week @ 2024-05-31 20/week @ 2024-06-07 17/week @ 2024-06-14 44/week @ 2024-06-21 135/week @ 2024-06-28 23/week @ 2024-07-05 251/week @ 2024-07-12 33/week @ 2024-07-19 72/week @ 2024-07-26 30/week @ 2024-08-02 31/week @ 2024-08-09 19/week @ 2024-08-16

每月下载量 155次
8 crates 使用

MIT 许可

65KB
1.5K SLoC

diol 是一个用于Rust的性能分析库。

入门指南

将以下内容添加到你的 Cargo.toml 文件中。

[dev-dependencies]
diol = "0.6.0"
[[bench]]
name = "my_benchmark"
harness = false

然后在 benches/my_benchmark.rs 文件中。

use diol::prelude::*;
fn main() -> std::io::Result<()> {
    let mut bench = Bench::new(BenchConfig::from_args());
    bench.register(slice_times_two, [4, 8, 16, 128, 1024]);
    bench.run()?;
    Ok(())
}
fn slice_times_two(bencher: Bencher, len: usize) {
    let mut v = vec![0.0_f64; len];
    bencher.bench(|| {
        for x in &mut v {
            *x *= 2.0;
        }
        black_box(&mut v);
    });
}

使用 cargo bench 运行基准测试,或者如果你有多个基准测试,可以使用 cargo bench --bench my_benchmark。你也可以使用 cargo bench --bench my_benchmark -- [OPTIONS...] 来传递基准测试选项。

╭─────────────────┬──────┬───────────┬───────────┬───────────┬───────────╮
│ benchmark       │ args │   fastest │    median │      mean │    stddev │
├─────────────────┼──────┼───────────┼───────────┼───────────┼───────────┤
│ slice_times_two │    429.61 ns │  34.38 ns │  34.83 ns │   1.62 ns │
├─────────────────┼──────┼───────────┼───────────┼───────────┼───────────┤
│ slice_times_two │    844.17 ns │  53.04 ns │  53.32 ns │   3.25 ns │
├─────────────────┼──────┼───────────┼───────────┼───────────┼───────────┤
│ slice_times_two │   1693.66 ns │ 107.91 ns │ 108.13 ns │   4.11 ns │
├─────────────────┼──────┼───────────┼───────────┼───────────┼───────────┤
│ slice_times_two │  128489.97 ns │ 583.59 ns │ 585.28 ns │  33.15 ns │
├─────────────────┼──────┼───────────┼───────────┼───────────┼───────────┤
│ slice_times_two │ 10243.77 µs │   4.51 µs │   4.53 µs │ 173.44 ns │
╰─────────────────┴──────┴───────────┴───────────┴───────────┴───────────╯

依赖项

plotters 依赖项需要 pkg-configfreetypefontconfig
在Ubuntu上安装,可以使用以下命令。

sudo apt install pkg-config libfreetype6-dev libfontconfig1-dev

依赖项

~4.5–8.5MB
~156K SLoC