Types for benchmarking.
The core class is Benchmarkable, which admits both pure functions
and IO actions.
For a pure function of type a -> b, the benchmarking harness
calls this function repeatedly, each time with a different Int
argument, and reduces the result the function returns to weak head
normal form. If you need the result reduced to normal form, that
is your responsibility.
For an action of type IO a, the benchmarking harness calls the
action repeatedly, but does not reduce the result.
|class Benchmarkable a where||Source|
|A benchmarkable function or action.
|:: a||The function or action to benchmark.
|-> Int||The number of times to run or evaluate it.
|-> IO ()|
|Run a function or action the specified number of times.
|A benchmark may consist of either a single Benchmarkable item
with a name, created with bench, or a (possibly nested) group of
Benchmarks, created with bgroup.
|A container for a pure function to benchmark, and an argument to
supply to it each time it is evaluated.
|Apply an argument to a function, and evaluate the result to weak
head normal form (WHNF).
|Apply an argument to a function, and evaluate the result to head
normal form (NF).
|Perform an action, then evaluate its result to head normal form.
This is particularly useful for forcing a lazy IO action to be
|:: String||A name to identify the group of benchmarks.
|-> [Benchmark]||Benchmarks to group under this name.
|Group several benchmarks together under a common name.
|Retrieve the names of all benchmarks. Grouped benchmarks are
prefixed with the name of the group they're in.
|Produced by Haddock version 2.6.0|