# Benchee v1.5.1 - Table of Contents

> Versatile (micro) benchmarking that is extensible. Get statistics such as:
average, iterations per second, standard deviation and the median.

## Pages

- [Changelog](changelog.md)
- [License](license.md)
- [Readme](readme.md)

## Modules

- [:benchee](:benchee.md): High-Level interface for more convenient usage from Erlang. Same as `Benchee`.

- [Benchee](Benchee.md): Top level module providing convenience access to needed functions as well
as the very high level `Benchee.run` API.
- [Benchee.Benchmark](Benchee.Benchmark.md): Functions related to building and running benchmarking scenarios.
Exposes `benchmark/4` and `collect/3` functions.

- [Benchee.Benchmark.BenchmarkConfig](Benchee.Benchmark.BenchmarkConfig.md): Benchmark Configuration, practically a sub set of `Benchee.Configuration`
- [Benchee.Benchmark.Hooks](Benchee.Benchmark.Hooks.md): Internal module to support hooks functionality.

- [Benchee.Benchmark.Runner](Benchee.Benchmark.Runner.md): Internal module "running" a scenario, measuring all defined measurements.

- [Benchee.Benchmark.ScenarioContext](Benchee.Benchmark.ScenarioContext.md): Internal struct the runner & related modules deal with to run a scenario.
- [Benchee.CollectionData](Benchee.CollectionData.md): The unified data structure for a given collection of data.
- [Benchee.Configuration](Benchee.Configuration.md): Functions to handle the configuration of Benchee, exposes `init/1` function.

- [Benchee.Conversion](Benchee.Conversion.md): Integration of the conversion of multiple units with Benchee.
- [Benchee.Conversion.Count](Benchee.Conversion.Count.md): Unit scaling for counts, such that 1000000 can be converted to 1 Million.
- [Benchee.Conversion.DeviationPercent](Benchee.Conversion.DeviationPercent.md): Helps with formatting for the standard deviation ratio converting it into the
more common percent form.
- [Benchee.Conversion.Duration](Benchee.Conversion.Duration.md): Unit scaling for duration converting from microseconds to minutes and others.
- [Benchee.Conversion.Format](Benchee.Conversion.Format.md): Functions for formatting values and their unit labels. Different domains
handle this task differently, for example durations and counts.
- [Benchee.Conversion.Memory](Benchee.Conversion.Memory.md): Unit scaling for memory converting from bytes to kilobytes and others.
- [Benchee.Conversion.Scale](Benchee.Conversion.Scale.md): Functions for scaling values to other units. Different domains handle
this task differently, for example durations and counts.
- [Benchee.Conversion.Unit](Benchee.Conversion.Unit.md): A representation of the different units used in `Benchee.Conversion.Format`
and `Benchee.Conversion.Scale` as well as the modules implementing these
behaviours.
- [Benchee.Formatter](Benchee.Formatter.md): Defines a behaviour for formatters in Benchee, and functions to work with these.
- [Benchee.Formatters.Console](Benchee.Formatters.Console.md): Formatter to print out the results of benchmarking suite to the console.
- [Benchee.Formatters.TaggedSave](Benchee.Formatters.TaggedSave.md): Store the whole suite in the Erlang `ExternalTermFormat` while tagging the
scenarios of the current run with a specified tag - can be used for storing
and later loading the results of previous runs with `Benchee.ScenarioLoader`.
- [Benchee.Profile](Benchee.Profile.md): Profiles each scenario after benchmarking them if the `profile_after` option is either set to:
  * `true`,
  * a valid `profiler`,
  * a tuple of a valid `profiler` and a list of options to pass to it, e.g., `{:fprof, [sort: :own]}`.
- [Benchee.RelativeStatistics](Benchee.RelativeStatistics.md): Statistics that are relative from one scenario to another.
- [Benchee.Scenario](Benchee.Scenario.md): Core data structure representing one particular case (combination of function and input).
- [Benchee.ScenarioLoader](Benchee.ScenarioLoader.md): Load scenarios that were saved using the saved option to be included.
- [Benchee.Statistics](Benchee.Statistics.md): Statistics related functionality that is meant to take the raw benchmark data
and then compute statistics like the average and the standard deviation etc.
- [Benchee.Suite](Benchee.Suite.md): Main Benchee data structure that aggregates the results from every step.
- [Benchee.System](Benchee.System.md): Provides information about the system the benchmarks are run on.
- [Benchee.Utility.FileCreation](Benchee.Utility.FileCreation.md): Methods to easily handle file creation used in plugins.

- Exceptions
  - [Benchee.PreCheckError](Benchee.PreCheckError.md)
  - [Benchee.UnknownProfilerError](Benchee.UnknownProfilerError.md)

