13个版本 (7个重大更新)
0.8.3 | 2024年5月4日 |
---|---|
0.7.0 | 2024年4月21日 |
#82 在 性能分析
每月下载量 155次
被 8 crates 使用
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 │ 4 │ 29.61 ns │ 34.38 ns │ 34.83 ns │ 1.62 ns │
├─────────────────┼──────┼───────────┼───────────┼───────────┼───────────┤
│ slice_times_two │ 8 │ 44.17 ns │ 53.04 ns │ 53.32 ns │ 3.25 ns │
├─────────────────┼──────┼───────────┼───────────┼───────────┼───────────┤
│ slice_times_two │ 16 │ 93.66 ns │ 107.91 ns │ 108.13 ns │ 4.11 ns │
├─────────────────┼──────┼───────────┼───────────┼───────────┼───────────┤
│ slice_times_two │ 128 │ 489.97 ns │ 583.59 ns │ 585.28 ns │ 33.15 ns │
├─────────────────┼──────┼───────────┼───────────┼───────────┼───────────┤
│ slice_times_two │ 1024 │ 3.77 µs │ 4.51 µs │ 4.53 µs │ 173.44 ns │
╰─────────────────┴──────┴───────────┴───────────┴───────────┴───────────╯
依赖项
plotters 依赖项需要 pkg-config
、freetype
和 fontconfig
。
在Ubuntu上安装,可以使用以下命令。
sudo apt install pkg-config libfreetype6-dev libfontconfig1-dev
依赖项
~4.5–8.5MB
~156K SLoC