Add criterion as a dev-dependency with the cargo_bench_support feature, create a benchmark file in benches/ with harness = false, and run it with cargo bench.
# Cargo.toml
[dev-dependencies]
criterion = { version = "0.8.2", features = ["cargo_bench_support"] }
[[bench]]
name = "my_bench"
harness = false
// benches/my_bench.rs
use criterion::{criterion_group, criterion_main, Criterion};
fn my_function() {
// Code to benchmark
}
fn bench_my_function(c: &mut Criterion) {
c.bench_function("my_function", |b| b.iter(my_function));
}
criterion_group!(benches, bench_my_function);
criterion_main!(benches);
cargo bench