Guide
A guide is being worked on. In the meantime, see announcement post.
Getting Started
-
Add the following to your project's
Cargo.toml
:[dev-dependencies] divan = "0.1.7" [[bench]] name = "example" harness = false
-
Create a benchmarks file at
benches/example.rs
1 with your benchmarking code:fn main() { // Run registered benchmarks. divan::main(); } // Define a `fibonacci` function and register it for benchmarking. #[divan::bench] fn fibonacci() -> u64 { fn compute(n: u64) -> u64 { if n <= 1 { 1 } else { compute(n - 2) + compute(n - 1) } } compute(divan::black_box(10)) }
-
Run your benchmarks with
cargo bench
:example fastest β slowest β median β mean β samples β iters β°β fβibonacci 196.1 ns β 217 ns β 197.5 ns β 198.1 ns β 100 β 3200
See #[divan::bench]
for info on benchmark function registration.
Examples
Practical example benchmarks can be found in the examples/benches
directory. These can be benchmarked locally by running:
git clone https://github.com/nvzqz/divan.git
cd divan
cargo bench -q -p examples --all-features
More thorough usage examples can be found in the #[divan::bench]
documentation.
License
Like the Rust project, this library may be used under either the MIT License or Apache License (Version 2.0).
Footnotes
-
Within your crate directory, i.e.
$CARGO_MANIFEST_DIR
β©