criterion-0.4.1.0: Robust, reliable performance measurement and analysisSource codeContentsIndex
Criterion
PortabilityGHC
Stabilityexperimental
Maintainerbos@serpentine.com
Description
Core benchmarking code.
Synopsis
class Benchmarkable a where
run :: a -> Int -> IO ()
data Benchmark
data Pure
nf :: NFData b => (a -> b) -> a -> Pure
nfIO :: NFData a => IO a -> IO ()
whnf :: (a -> b) -> a -> Pure
bench :: Benchmarkable b => String -> b -> Benchmark
bgroup :: String -> [Benchmark] -> Benchmark
runBenchmark :: Benchmarkable b => Environment -> b -> Criterion Sample
runAndAnalyse :: (String -> Bool) -> Environment -> Benchmark -> Criterion ()
Documentation
class Benchmarkable a whereSource
A benchmarkable function or action.
Methods
runSource
:: aThe function or action to benchmark.
-> IntThe number of times to run or evaluate it.
-> IO ()
Run a function or action the specified number of times.
show/hide Instances
data Benchmark Source
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.
show/hide Instances
data Pure Source
A container for a pure function to benchmark, and an argument to supply to it each time it is evaluated.
show/hide Instances
nf :: NFData b => (a -> b) -> a -> PureSource
Apply an argument to a function, and evaluate the result to head normal form (NF).
nfIO :: NFData a => IO a -> IO ()Source
Perform an action, then evaluate its result to head normal form. This is particularly useful for forcing a lazy IO action to be completely performed.
whnf :: (a -> b) -> a -> PureSource
Apply an argument to a function, and evaluate the result to weak head normal form (WHNF).
benchSource
:: Benchmarkable b
=> String
-> b
-> Benchmark
Create a single benchmark.
bgroupSource
:: StringA name to identify the group of benchmarks.
-> [Benchmark]Benchmarks to group under this name.
-> Benchmark
Group several benchmarks together under a common name.
runBenchmark :: Benchmarkable b => Environment -> b -> Criterion SampleSource
Run a single benchmark, and return timings measured when executing it.
runAndAnalyseSource
:: String -> BoolA predicate that chooses whether to run a benchmark by its name.
-> Environment
-> Benchmark
-> Criterion ()
Run, and analyse, one or more benchmarks.
Produced by Haddock version 2.6.0