Supported Benchmarking Crates
CodSpeed offers compatibility layers for several popular benchmarking crates:divan (recommended)
The most convenient way to run your Rust benchmarks
criterion.rs
A benchmarking crate inspired by the criterion haskell library
libtest (bencher)
The libtest (unstable) benchmark runner
divan benchmarking framework due
to its extensive features, such as
running type-generic benchmarks. Its popularity is growing rapidly within the
Rust ecosystem.
If you’re already using criterion.rs or
bencher, consider their respective plugins, as
they require minimal adjustments to work with CodSpeed.
How does CodSpeed work with Rust benchmarks?
Rust, being a compiled language, has CodSpeed integrations that differ from those for interpreted languages. The CodSpeed benchmarking process for Rust occurs at both build time and runtime. To facilitate this, CodSpeed provides:- A
cargo-codspeedcargo subcommand: used regardless of the benchmarking crate. - Compatibility layers for popular benchmarking crates: chose the appropriate one based on your project’s needs.
cargo-codspeed
To integrate CodSpeed with your Rust codebase, use the cargo subcommand:
cargo-codspeed. This tool allows you
to run CodSpeed benchmarks without modifying the behavior of the standard
cargo bench command.
Due to a limitation of cargo, we currently do not support
build.rustflags in .cargo/config.toml file
when using cargo-codspeed.However, you can use [target.'cfg(all())'] instead of [build] as a
workaround which does the same and is compatible.Installation
To check your benchmarks with CodSpeed, you first need to install thecargo-codspeed CLI tool:
Usage
No matter which benchmarking crate you’re using, thecargo-codspeed command is
used to help you build and run the benchmark in a CodSpeed environment.
Advanced build options
By default,cargo codspeed build will build all the benchmark executables of
your workspace. But you can also be more specific with the following options:
Advanced run options
By default,cargo codspeed run will run all the built benchmarks (of the
latest cargo codspeed build ... command you ran).
To run only a subset of the built benchmarks, you can do the following:
Continue by choosing a benchmarking crate
divan (recommended)
The most convenient way to run your Rust benchmarks