Crate criterion [] [src]

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! macro for more details.

criterion_main

Macro which expands to a benchmark harness.

Structs

Bencher

Helper struct to time routines

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

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 inteded 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.

init_logging

Initialize the logging for a Criterion benchmark. This should be called first before executing Criterion benchmarks, unless the user provides their own logging infrastructure.