Benchee v0.13.2 Benchee.Benchmark.Scenario View Source
A Scenario in Benchee is a particular case of a whole benchmarking suite. That
is the combination of a particular function to benchmark (job_name and
function) in combination with a specific input (input_name and input).
It then gathers all data measured for this particular combination during
Benchee.Benchmark.measure/3 (run_times and memory_usages),
which are then used later in the process by Benchee.Statistics to compute
the relevant statistics (run_time_statistics and memory_usage_statistics).
name is the name that should be used by formatters to display scenarios as
it potentially includes the tag present when loading scenarios that were
saved before. See display_name/1.
Link to this section Summary
Functions
Returns the correct name to display of the given scenario data
Link to this section Types
t() :: %Benchee.Benchmark.Scenario{
after_each: (... -> any()) | nil,
after_scenario: (... -> any()) | nil,
before_each: (... -> any()) | nil,
before_scenario: (... -> any()) | nil,
function: (... -> any()),
input: any() | nil,
input_name: String.t() | nil,
job_name: String.t(),
memory_usage_statistics: Benchee.Statistics.t() | nil,
memory_usages: [non_neg_integer()],
name: String.t(),
run_time_statistics: Benchee.Statistics.t() | nil,
run_times: [float()],
tag: String.t() | nil
}
Link to this section Functions
Returns the correct name to display of the given scenario data.
In the normal case this is job_name, however when scenarios are loaded they
are tagged and these tags should be shown for disambiguation.
Examples
iex> alias Benchee.Benchmark.Scenario
iex> Scenario.display_name(%Scenario{job_name: "flat_map"})
"flat_map"
iex> Scenario.display_name(%Scenario{job_name: "flat_map", tag: "master"})
"flat_map (master)"
iex> Scenario.display_name(%{job_name: "flat_map"})
"flat_map"