Crate criterion

Source
Expand description

A statistics-driven micro-benchmarking library written in Rust.

This crate is a microbenchmarking library which aims to provide strong statistical confidence in detecting and estimating the size of performance improvements and regressions, whle also being easy to use.

See the user guide for examples as well as details on the measurement and analysis process, and the output.

§Features:

  • Benchmark Rust code as well as external programs
  • Collects detailed statistics, providing strong confidence that changes to performance are real, not measurement noise
  • Produces detailed charts, providing thorough understanding of your code’s performance behavior.

Macros§

criterion_group
Macro used to define a benchmark group for the benchmark harness; see the criterion_main! macro for more details.
criterion_main
Macro which expands to a benchmark harness.

Structs§

Bencher
Timer struct to iterate a benchmarked function and measure the runtime.
Benchmark
Structure representing a benchmark (or group of benchmarks) which takes no parameters.
Criterion
The benchmark manager
Fun
Representing a function to benchmark together with a name of that function. Used together with bench_functions to represent one out of multiple functions under benchmark.
ParameterizedBenchmark
Structure representing a benchmark (or group of benchmarks) which take one parameter.
PlotConfiguration
Contains the configuration options for the plots generated by a particular benchmark or benchmark group.

Enums§

AxisScale
Axis scaling type
Baseline
Baseline describes how the baseline_directory is handled.
BatchSize
Argument to Bencher::iter_batched and Bencher::iter_batched_ref which controls the batch size.
Throughput
Enum representing different ways of measuring the throughput of benchmarked code. If the throughput setting is configured for a benchmark then the estimated throughput will be reported as well as the time per iteration.

Traits§

BenchmarkDefinition
Common trait for Benchmark and ParameterizedBenchmark. Not intended to be used outside of Criterion.rs.

Functions§

black_box
A function that is opaque to the optimizer, used to prevent the compiler from optimizing away computations in a benchmark.