View Source Benchee (Benchee v1.3.0)

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

Intended Elixir interface.

Summary

Functions

Link to this function

benchmark(suite, name, function)

View Source

See Benchee.Benchmark.benchmark/3.

See Benchee.Benchmark.collect/1.

See Benchee.Configuration.init/0.

See Benchee.Configuration.init/1.

See Benchee.ScenarioLoader.load/1.

See Benchee.Profile.profile/1.

Link to this function

relative_statistics(suite)

View Source

See Benchee.RelativeStatistics.relative_statistics/1.

@spec report(keyword()) :: Benchee.Suite.t()

A convenience function designed for loading saved benchmarks and running formatters on them.

Basically takes the input of the map of jobs away from you and skips unnecessary steps with that data missing (aka not running benchmarks, only running relative statistics).

You can use config options as normal, but some options related to benchmarking won't take effect (such as :time). The :load option however is mandatory to use, as you need to load some benchmarks to report on them.

Usage

Benchee.report(load: ["benchmark-*.benchee"])
@spec run(
  map(),
  keyword()
) :: Benchee.Suite.t()

Run benchmark jobs defined by a map and optionally provide configuration options.

Benchmarks are defined as a map where the keys are a name for the given function and the values are the functions to benchmark. Users can configure the run by passing a keyword list as the second argument. For more information on configuration see Benchee.Configuration.init/1.

Examples

Benchee.run(
  %{
    "My Benchmark" => fn -> 1 + 1 end,
    "My other benchmrk" => fn -> [1] ++ [1] end
  },
  warmup: 2,
  time: 3
)

See Benchee.Statistics.statistics/1.

See Benchee.System.system/1.