16 个版本

0.1.14 2024年2月17日
0.1.13 2024年2月10日
0.1.11 2024年1月21日
0.1.8 2023年12月19日
0.0.0 2023年6月30日

#3性能分析

Download history 6047/week @ 2024-04-22 6206/week @ 2024-04-29 4018/week @ 2024-05-06 5974/week @ 2024-05-13 5325/week @ 2024-05-20 5660/week @ 2024-05-27 6392/week @ 2024-06-03 6355/week @ 2024-06-10 6318/week @ 2024-06-17 4573/week @ 2024-06-24 5030/week @ 2024-07-01 5999/week @ 2024-07-08 7279/week @ 2024-07-15 6885/week @ 2024-07-22 7159/week @ 2024-07-29 7572/week @ 2024-08-05

每月 29,427 次下载
79 个crates(直接使用78个) 中使用

MIT/Apache

305KB
5.5K SLoC

Divan

docs.rs badge Downloads badge GitHub stars badge CI build status badge

舒适的基准测试 为 Rust 项目,由 Nikolai Vazquez 提供。

赞助商

如果您或您的公司认为 Divan 很有价值,请考虑在 GitHub 上赞助 或通过 PayPal 捐款。赞助有助于我在 Rust 的基准测试方面取得进步。

指南

指南正在制作中。同时,请参阅

入门

  1. 将以下内容添加到项目的 Cargo.toml

    [dev-dependencies]
    divan = "0.1.14"
    
    [[bench]]
    name = "example"
    harness = false
    
  2. benches/example.rs[^1] 中创建一个基准测试文件,包含您的基准测试代码

    fn main() {
        // Run registered benchmarks.
        divan::main();
    }
    
    // Register a `fibonacci` function and benchmark it over multiple cases.
    #[divan::bench(args = [1, 2, 4, 8, 16, 32])]
    fn fibonacci(n: u64) -> u64 {
        if n <= 1 {
            1
        } else {
            fibonacci(n - 2) + fibonacci(n - 1)
        }
    }
    
  3. 使用 cargo bench 运行您的基准测试

    example       fastest  │ slowest  │ median   │ mean     │ samples │ iters
    ╰─ fibonacci           │          │          │          │         │
       ├─ 1       0.626 ns │ 1.735 ns │ 0.657 ns │ 0.672 ns │ 100     │ 819200
       ├─ 2       2.767 ns │ 3.154 ns │ 2.788 ns │ 2.851 ns │ 100     │ 204800
       ├─ 4       6.816 ns │ 7.671 ns │ 7.061 ns │ 7.167 ns │ 100     │ 102400
       ├─ 8       57.31 ns │ 62.51 ns │ 57.96 ns │ 58.55 ns │ 100     │ 12800
       ├─ 16      2.874 µs │ 3.812 µs │ 2.916 µs │ 3.006 µs │ 100     │ 200
       ╰─ 32      6.267 ms │ 6.954 ms │ 6.283 ms │ 6.344 ms │ 100     │ 100
    

有关基准函数注册的信息,请参阅 #[divan::bench]

示例

实用示例基准测试可以在 examples/benches 目录中找到。这些可以在本地运行

git clone https://github.com/nvzqz/divan.git
cd divan

cargo bench -q -p examples --all-features

更详细的用法示例可以在 #[divan::bench] 文档中找到。

许可

与 Rust 项目一样,此库可以在 MIT 许可证Apache 许可证(版本 2.0) 下使用。

[^1]:在您的crate目录中,即 $CARGO_MANIFEST_DIR

依赖项

~2–10MB
~106K SLoC