View Source Benchee.Formatters.Console (Benchee v1.3.1)
Formatter to print out the results of benchmarking suite to the console.
Example:
Name ips average deviation median 99th %
flat_map 2.40 K 417.00 μs ±9.40% 411.45 μs 715.21 μs
map.flatten 1.24 K 806.89 μs ±16.62% 768.02 μs 1170.67 μs
Comparison:
flat_map 2.40 K
map.flatten 1.24 K - 1.93x slower
Memory usage statistics:
Name Memory usage
flat_map 624.97 KB
map.flatten 781.25 KB - 1.25x memory usage
**All measurements for memory usage were the same**
Reduction count statistics:
Name average deviation median 99th %
flat_map 417.00 ±9.40 411.45 715.21
map.flatten 806.89 ±16.62 768.02 1170.67
Comparison:
flat_map 417.00
map.flatten 806.89 - 1.93x more reductions
Summary
Functions
@spec 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.Scenario{
...> name: "My Job",
...> input_name: "My input",
...> run_time_data: %Benchee.CollectionData{
...> 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_data: %Benchee.CollectionData{statistics: %Benchee.Statistics{}}
...> },
...> %Benchee.Scenario{
...> name: "Job 2",
...> input_name: "My input",
...> run_time_data: %Benchee.CollectionData{
...> 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_data: %Benchee.CollectionData{statistics: %Benchee.Statistics{}}
...> }
...> ]
...>
...> suite = %Benchee.Suite{
...> scenarios: scenarios,
...> configuration: %Benchee.Configuration{
...> unit_scaling: :best
...> }
...> }
...>
...> 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
"
]
]
Takes the output of format/1
and writes that to the console.