14 个稳定版本

2.6.0 2024 年 4 月 24 日
2.4.0 2024 年 2 月 26 日
2.3.3 2023 年 11 月 20 日
2.1.0 2023 年 7 月 27 日
1.1.0 2023 年 3 月 3 日

#49性能分析

Download history 15897/week @ 2024-04-23 12224/week @ 2024-04-30 6043/week @ 2024-05-07 3636/week @ 2024-05-14 4686/week @ 2024-05-21 4492/week @ 2024-05-28 3494/week @ 2024-06-04 3565/week @ 2024-06-11 4202/week @ 2024-06-18 3150/week @ 2024-06-25 4298/week @ 2024-07-02 30743/week @ 2024-07-09 30375/week @ 2024-07-16 15113/week @ 2024-07-23 25810/week @ 2024-07-30 31042/week @ 2024-08-06

每月下载量 108,255 次
36 个代码包 中使用

MIT/Apache

40KB
949

codspeed-criterion-compat

CI Crates.io Discord CodSpeed Badge

CodSpeed 的 Criterion.rs 兼容层

安装

cargo add --dev codspeed-criterion-compat

使用

让我们从 Criterion.rs 文档中的示例开始,创建一个 Fibonacci 函数的基准测试套件(在 benches/my_benchmark.rs 中)

use criterion::{black_box, criterion_group, criterion_main, Criterion};

fn fibonacci(n: u64) -> u64 {
    match n {
        0 => 1,
        1 => 1,
        n => fibonacci(n-1) + fibonacci(n-2),
    }
}

pub fn criterion_benchmark(c: &mut Criterion) {
    c.bench_function("fib 20", |b| b.iter(|| fibonacci(black_box(20))));
}

criterion_group!(benches, criterion_benchmark);
criterion_main!(benches);

创建 Criterion 基准测试的最后一个步骤是在你的 Cargo.toml 中添加新的基准目标

[[bench]]
name = "my_benchmark"
harness = false

连接 CodSpeed

为了允许 CodSpeed 与此套件交互,你只需要将 criterion 代码包的导入替换为 codspeed-criterion-compat 代码包

- use criterion::{black_box, criterion_group, criterion_main, Criterion};
+ use codspeed_criterion_compat::{black_box, criterion_group, criterion_main, Criterion};

就是这样!你现在可以使用 cargo-codspeed 运行你的基准测试套件了

$ cargo codspeed build
    Finished release [optimized] target(s) in 0.12s
    Finished built 1 benchmark suite(s)

$ cargo codspeed run
   Collected 1 benchmark suite(s) to run
     Running my_benchmark
Using codspeed-criterion-compat v1.0.0 compatibility layer
NOTICE: codspeed is enabled, but no performance measurement will be made since it's running in an unknown environment.
Checked: benches/bencher_example.rs::fib_20 (group: benches)
        Done running bencher_example
    Finished running 1 benchmark suite(s)

不支持

  • iter_custom
  • with_filter

依赖项

~6–24MB
~295K SLoC