Benchee v0.14.0 Benchee.Formatters.Console View Source

Formatter to transform the statistics output into a structure suitable for output through IO.write on the console.

Link to this section Summary

Functions

Formats the benchmark statistics to a report suitable for output on the CLI

Takes the output of format/1 and writes that to the console

Link to this section Functions

Link to this function

format(suite, options) View Source
format(Benchee.Suite.t(), map()) :: [any()]

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

Returns a list of lists, where each list element is a group belonging to one specific input. So if there only was one (or no) input given through :inputs then there's just one list inside.

Examples

iex> scenarios = [
...>   %Benchee.Benchmark.Scenario{
...>     name: "My Job", input_name: "My input", run_time_statistics: %Benchee.Statistics{
...>       average: 200.0,
...>       ips: 5000.0,
...>       std_dev_ratio: 0.1,
...>       median: 190.0,
...>       percentiles: %{99 => 300.1},
...>       sample_size: 200
...>     },
...>     memory_usage_statistics: %Benchee.Statistics{}
...>   },
...>   %Benchee.Benchmark.Scenario{
...>     name: "Job 2", input_name: "My input", run_time_statistics: %Benchee.Statistics{
...>       average: 400.0,
...>       ips: 2500.0,
...>       std_dev_ratio: 0.2,
...>       median: 390.0,
...>       percentiles: %{99 => 500.1},
...>       sample_size: 200
...>     },
...>     memory_usage_statistics: %Benchee.Statistics{}
...>   }
...> ]
iex> suite = %Benchee.Suite{
...>   scenarios: scenarios,
...>   configuration: %Benchee.Configuration{
...>     unit_scaling: :best,
...>   }
...> }
iex> Benchee.Formatters.Console.format(suite, %{comparison: false, extended_statistics: false})
[["
##### With input My input #####", "
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
"]]
Link to this function

write(output, options) View Source
write(any(), map()) :: :ok | {:error, String.t()}

Takes the output of format/1 and writes that to the console.