Benchee v0.14.0 Benchee.Formatters.Console.RunTime View Source

This deals with just the formatting of the run time results. They are similar to the way the memory results are formatted, but different enough to where the abstractions start to break down pretty significantly, so I wanted to extract these two things into separate modules to avoid confusion.

Link to this section Summary

Functions

Formats the run time statistics to a report suitable for output on the CLI

Link to this section Types

Link to this type

unit_per_statistic() View Source
unit_per_statistic() :: %{optional(atom()) => Benchee.Conversion.Unit.t()}

Link to this section Functions

Link to this function

format_scenarios(scenarios, config) View Source
format_scenarios([Benchee.Benchmark.Scenario.t()], map()) :: [String.t(), ...]

Formats the run time statistics to a report suitable for output on the CLI.

Examples

iex> memory_statistics = %Benchee.Statistics{average: 100.0}
iex> scenarios = [
...>   %Benchee.Benchmark.Scenario{
...>     name: "My Job",
...>     run_time_statistics: %Benchee.Statistics{
...>       average: 200.0, ips: 5000.0,std_dev_ratio: 0.1, median: 190.0, percentiles: %{99 => 300.1},
...>       minimum: 100.1, maximum: 200.2, sample_size: 10_101, mode: 333.2
...>     },
...>     memory_usage_statistics: memory_statistics
...>   },
...>   %Benchee.Benchmark.Scenario{
...>     name: "Job 2",
...>     run_time_statistics: %Benchee.Statistics{
...>       average: 400.0, ips: 2500.0, std_dev_ratio: 0.2, median: 390.0, percentiles: %{99 => 500.1},
...>       minimum: 200.2, maximum: 400.4, sample_size: 20_202, mode: [612.3, 554.1]
...>     },
...>     memory_usage_statistics: memory_statistics
...>   }
...> ]
iex> configuration = %{comparison: false, unit_scaling: :best, extended_statistics: true}
iex> Benchee.Formatters.Console.RunTime.format_scenarios(scenarios, configuration)
["
Name             ips        average  deviation         median         99th %
",
"My Job           5 K         200 ns    ±10.00%         190 ns      300.10 ns
",
"Job 2         2.50 K         400 ns    ±20.00%         390 ns      500.10 ns
",
"
Extended statistics: 
",
"
Name           minimum        maximum    sample size                     mode
",
"My Job       100.10 ns      200.20 ns        10.10 K                333.20 ns
",
"Job 2        200.20 ns      400.40 ns        20.20 K     612.30 ns, 554.10 ns
"]