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日

#26#criterion

Download history 4463/week @ 2024-03-14 5454/week @ 2024-03-21 5626/week @ 2024-03-28 6166/week @ 2024-04-04 6559/week @ 2024-04-11 5168/week @ 2024-04-18 6369/week @ 2024-04-25 5538/week @ 2024-05-02 4471/week @ 2024-05-09 5839/week @ 2024-05-16 5887/week @ 2024-05-23 5596/week @ 2024-05-30 6637/week @ 2024-06-06 6553/week @ 2024-06-13 5226/week @ 2024-06-20 3810/week @ 2024-06-27

23,055 每月下载量
67 个crate中(通过 divan)使用

MIT/Apache

42KB
688

Divan

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

舒适的基准测试,由 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许可](https://github.com/nvzqz/divan/blob/main/LICENSE-MIT) 或 [Apache许可(版本2.0)](https://github.com/nvzqz/divan/blob/main/LICENSE-APACHE)。

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

依赖项

~305–760KB
~18K SLoC