Benchee v0.1.0 Benchee

Top level module providing convenience access to needed functions as well as the very high level Benchee.run API.

Summary

Functions

Convenience access to Benchee.Benchmark.benchmark/3 to runs the given benchmark for the configured time and returns a suite with the benchmarking results added

Convenience access to Benchee.Config.init/1 to initialize the configuration

High level interface that runs the given benchmarks and prints the results on the console. It is given an optional config and an array of tuples of names and functions to benchmark. For configuration options see the documentation of Benchee.init/1

Convenience access to Benchee.Statistics.statistics/1 to generate statistics

Functions

benchmark(suite, name, function)

Convenience access to Benchee.Benchmark.benchmark/3 to runs the given benchmark for the configured time and returns a suite with the benchmarking results added.

init(config \\ %{})

Convenience access to Benchee.Config.init/1 to initialize the configuration.

Examples

iex> Benchee.init
%{config: %{time: 5_000_000}, jobs: []}

iex> Benchee.init %{time: 1}
%{config: %{time: 1_000_000}, jobs: []}
run(config \\ %{}, jobs)

High level interface that runs the given benchmarks and prints the results on the console. It is given an optional config and an array of tuples of names and functions to benchmark. For configuration options see the documentation of Benchee.init/1.

Examples

Benchee.run(%{time: 3},
             [{"My Benchmark", fn -> 1 + 1 end},
              {"My other benchmrk", fn -> "1" ++ "1" end}])
# Prints a summary of the benchmark to the console
statistics(suite)

Convenience access to Benchee.Statistics.statistics/1 to generate statistics.

Examples

iex> run_times = [200, 400, 400, 400, 500, 500, 700, 900]
iex> suite = %{jobs: [{"My Job", run_times}]}
iex> Benchee.Statistics.statistics(suite)
[{"My Job",
  %{average:       500.0,
    std_dev:       200.0,
    std_dev_ratio: 0.4,
    ips:           2000.0,
    median:        450.0}}]