Releases: CodSpeedHQ/codspeed-rust
v4.7.0
What's Changed
Manual sampling for criterion
Note: ignored under CodSpeed simulation mode (single measured iteration). Only takes effect in walltime mode.
We introduced a new finer control way of defining a criterion benchmark to have full control over how many times your code is ran.
This bypasses criterion's original sampler, which we still recommend using if you do not have specific control needs.
use codspeed_criterion_compat::{criterion_group, criterion_main, Criterion, IterManualOptions};
fn bench_my_function(c: &mut Criterion) {
c.bench_function("my_function", |b| {
b.iter_manual_unstable(
IterManualOptions::new()
.rounds(5) // 5 measurement samples, can be lower than criterion's imposed 10
.iters(1000) // 1000 calls per sample
.warmup(5), // 5 unmeasured warmup iterations
|| my_function(),
);
});
}
criterion_group!(benches, bench_my_function);
criterion_main!(benches);Please note that this API is still under development and may change with future releases.
- fix(cargo-codspeed): forward args after
--to bench binaries by @not-matthias in #179 - chore: bump instrument-hooks by @not-matthias in #178
- feat(criterion-compat): add
iter_manualto have finer control over the iteration loop by @GuillaumeLagrange in #180
Full Changelog: v4.6.0...v4.7.0
v4.6.0
What's Changed
This release adds first support for macOS walltime.
Please note that profiling and other instruments are not yet available on macOS and will come in a later update.
- Support macos walltime without profiling in codspeed-rust by @GuillaumeLagrange in #176
Full Changelog: v4.5.0...v4.6.0
v4.5.0
What's Changed
We now collect buildtime and runtime environment data to warn users about differences in their runtime environment when comparing two runs against one another.
This data includes toolchain metadata like version and build options, as well as a list of dynamically loaded linked libraries.
- feat(codspeed): collect Rust toolchain environment at build time by @GuillaumeLagrange in #171
- Bump instrument hooks and collect linked libraries by @GuillaumeLagrange in #173
Full Changelog: v4.4.1...v4.5.0
v4.4.1
What's changed
- chore: update documentation URLs and reformat Cargo.toml files, by @adriencaccia (378d5f8)
Full Changelog: v4.4.0...v4.4.1
v4.4.0
What's Changed
- feat(cargo-codspeed): allow build with multiple modes by @not-matthias in #162
- chore(deps): update rust crate nix to 0.31.2 by @xtqqczze in #167
New Contributors
Full Changelog: v4.3.0...v4.4.0
v4.3.0
What's Changed
- feat(cargo-codspeed): add internal build mode by @not-matthias in #159
- fix: instrument-hooks error in CI by @not-matthias in #161
Full Changelog: v4.2.1...v4.3.0
v4.2.1
What's Changed
- fix(core): fix inverted boolean condition in warning message by @GuillaumeLagrange in #158
Full Changelog: v4.2.0...v4.2.1
v4.2.0
What's Changed
- feat: rename instrumentation to simulation by @GuillaumeLagrange in #150
- feat: add support for analysis mode by @not-matthias in #152
Full Changelog: v4.1.0...v4.2.0
v4.1.0
What's Changed
- feat(divan): support
countercompatibility with a dummy implementation by @art049 in #115 - chore: bump cargo metadata to 0.23.0 by @art049 in #141
- ci: fix check dependency job name by @GuillaumeLagrange in #145
- feat(cargo-codspeed): throw an error when building a bench target with the default harness by @GuillaumeLagrange in #144
- Remove
uuiddependency by @larseggert in #148 - fix(divan): use busy sleep in time scale examples by @GuillaumeLagrange in #149
New Contributors
- @larseggert made their first contribution in #148
Full Changelog: v4.0.5...v4.1.0
v4.0.5
What's Changed
- feat(cargo-codspeed): add explicit mode with command when no benchmarks are found in run by @adriencaccia in #140
- Remove extraneous $ in inline asm for Intel syntax by @chirizxc in #138
- fix: building codspeed with clang by @not-matthias in #137
New Contributors
Full Changelog: v4.0.4...v4.0.5