Crates.io | codspeed-bencher-compat |
lib.rs | codspeed-bencher-compat |
version | 2.7.2 |
source | src |
created_at | 2022-12-16 00:02:05.123908 |
updated_at | 2024-09-13 12:59:28.084922 |
description | Bencher compatibility layer for CodSpeed |
homepage | https://codspeed.io |
repository | https://github.com/CodSpeedHQ/codspeed-rust |
max_upload_size | |
id | 738378 |
size | 8,050 |
cargo add --dev codspeed-bencher-compat
Let's start with the example from the Bencher documentation,
creating a benchmark suite for 2 simple functions (in benches/example.rs
):
use bencher::{benchmark_group, benchmark_main, Bencher};
fn a(bench: &mut Bencher) {
bench.iter(|| {
(0..1000).fold(0, |x, y| x + y)
})
}
fn b(bench: &mut Bencher) {
const N: usize = 1024;
bench.iter(|| {
vec![0u8; N]
});
bench.bytes = N as u64;
}
benchmark_group!(benches, a, b);
benchmark_main!(benches);
The last step in creating the Bencher benchmark is to add the new benchmark target in your Cargo.toml
:
[[bench]]
name = "example"
harness = false
To allow CodSpeed to interact with this suite as well, you simply need to replace
the imports from the bencher
crate to the codspeed-bencher-compat
crate:
- use bencher::{benchmark_group, benchmark_main, Bencher};
+ use codspeed_bencher_compat::{benchmark_group, benchmark_main, Bencher};
And that's it! You can now run your benchmark suite with 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 example
Using codspeed-bencher-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/example.rs::a (group: benches)
Checked: benches/example.rs::b (group: benches)
Done running bencher_example
Finished running 1 benchmark suite(s)