Copyright | (c) 2009-2014 Bryan O'Sullivan |
---|---|
License | BSD-style |
Maintainer | bos@serpentine.com |
Stability | experimental |
Portability | GHC |
Safe Haskell | None |
Language | Haskell2010 |
Criterion
Description
Core benchmarking code.
Synopsis
- data Benchmarkable
- data Benchmark
- 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
- toBenchmarkable :: (Int64 -> IO ()) -> Benchmarkable
- bench :: String -> Benchmarkable -> Benchmark
- bgroup :: String -> [Benchmark] -> Benchmark
- nf :: NFData b => (a -> b) -> a -> Benchmarkable
- whnf :: (a -> b) -> a -> Benchmarkable
- nfIO :: NFData a => IO a -> Benchmarkable
- whnfIO :: IO a -> Benchmarkable
- nfAppIO :: NFData b => (a -> IO b) -> a -> Benchmarkable
- whnfAppIO :: (a -> IO b) -> a -> Benchmarkable
- benchmark :: Benchmarkable -> IO ()
- benchmarkWith :: Config -> Benchmarkable -> IO ()
- benchmark' :: Benchmarkable -> IO Report
- benchmarkWith' :: Config -> Benchmarkable -> IO Report
Benchmarkable code
data Benchmarkable #
Creating a benchmark suite
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 #
perRunEnvWithCleanup :: (NFData env, NFData b) => IO env -> (env -> IO ()) -> (env -> IO b) -> Benchmarkable #
toBenchmarkable :: (Int64 -> IO ()) -> Benchmarkable #
bench :: String -> Benchmarkable -> Benchmark #
Running a benchmark
nf :: NFData b => (a -> b) -> a -> Benchmarkable #
whnf :: (a -> b) -> a -> Benchmarkable #
nfIO :: NFData a => IO a -> Benchmarkable #
whnfIO :: IO 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.