criterion-1.5.5.0: Robust, reliable performance measurement and analysis

Copyright(c) 2009-2014 Bryan O'Sullivan
LicenseBSD-style
Maintainerbos@serpentine.com
Stabilityexperimental
PortabilityGHC
Safe HaskellNone
LanguageHaskell2010

Criterion

Contents

Description

Core benchmarking code.

Synopsis

Benchmarkable code

Creating a benchmark suite

env :: NFData env => IO env -> (env -> Benchmark) -> Benchmark #

envWithCleanup :: NFData env => IO env -> (env -> IO a) -> (env -> Benchmark) -> Benchmark #

perBatchEnv :: (NFData env, NFData b) => (Int64 -> IO env) -> (env -> IO b) -> Benchmarkable #

perBatchEnvWithCleanup :: (NFData env, NFData b) => (Int64 -> IO env) -> (Int64 -> env -> IO ()) -> (env -> IO b) -> Benchmarkable #

perRunEnv :: (NFData env, NFData b) => IO env -> (env -> IO b) -> Benchmarkable #

perRunEnvWithCleanup :: (NFData env, NFData b) => IO env -> (env -> IO ()) -> (env -> IO b) -> Benchmarkable #

Running a benchmark

nf :: NFData b => (a -> b) -> a -> Benchmarkable #

whnf :: (a -> b) -> a -> Benchmarkable #

nfAppIO :: NFData b => (a -> IO b) -> a -> Benchmarkable #

whnfAppIO :: (a -> IO b) -> a -> Benchmarkable #

For interactive use

benchmark :: Benchmarkable -> IO () Source #

Run a benchmark interactively, and analyse its performance.

benchmarkWith :: Config -> Benchmarkable -> IO () Source #

Run a benchmark interactively, and analyse its performance.

benchmark' :: Benchmarkable -> IO Report Source #

Run a benchmark interactively, analyse its performance, and return the analysis.

benchmarkWith' :: Config -> Benchmarkable -> IO Report Source #

Run a benchmark interactively, analyse its performance, and return the analysis.