# `Benchee.Formatters.Console`
[🔗](https://github.com/bencheeorg/benchee/blob/1.5.1/lib/benchee/formatters/console.ex#L1)

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

# `format`

```elixir
@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
"
  ]
]

```

# `write`

```elixir
@spec write(any(), map()) :: :ok | {:error, String.t()}
```

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

