criterion

Robust, reliable performance measurement and analysis

http://www.serpentine.com/criterion

Version on this page:1.1.4.0@rev:1
LTS Haskell 22.37:1.6.3.0@rev:1
Stackage Nightly 2024-10-09:1.6.3.0@rev:1
Latest on Hackage:1.6.3.0@rev:1

See all snapshots criterion appears in

BSD-3-Clause licensed and maintained by Bryan O'Sullivan
This version can be pinned in stack with:criterion-1.1.4.0@sha256:61a5386463efe3da9c0bc5d14f6074e500dc76fc62e2dda40eaf81955716fe41,4227

Criterion: robust, reliable performance measurement

Build Status

This package provides the Criterion module, a Haskell library for measuring and analysing software performance.

To get started, read the online tutorial, and take a look at the programs in the examples directory.

Building and installing

To build and install criterion, just run

cabal install criterion

Get involved!

Please report bugs via the github issue tracker.

Master github repository:

  • git clone https://github.com/bos/criterion.git

There’s also a Mercurial mirror:

  • hg clone https://bitbucket.org/bos/criterion

(You can create and contribute changes using either Mercurial or git.)

Authors

This library is written and maintained by Bryan O’Sullivan, [email protected].

Changes

1.1.4.0

  • Unicode output is now correctly printed on Windows.

1.1.3.1

  • Add Safe Haskell annotations.

1.1.3.0

  • Add --json option for writing reports in JSON rather than binary format. Also: various bugfixes related to this.

1.1.1.0

  • If a benchmark uses Criterion.env in a non-lazy way, and you try to use --list to list benchmark names, you’ll now get an understandable error message instead of something cryptic.

  • We now flush stdout and stderr after printing messages, so that output is printed promptly even when piped (e.g. into a pager).

  • A new function runMode allows custom benchmarking applications to run benchmarks with control over the Mode used.

  • Added support for Linux on non-Intel CPUs.

  • This version supports GHC 8.

  • The --only-run option for benchmarks is renamed to --iters.

1.1.0.0

  • The dependency on the either package has been dropped in favour of a dependency on transformers-compat. This greatly reduces the number of packages criterion depends on. This shouldn’t affect the user-visible API.

  • The documentation claimed that environments were created only when needed, but this wasn’t implemented. (gh-76)

  • The package now compiles with GHC 7.10.

  • On Windows with a non-Unicode code page, printing results used to cause a crash. (gh-55)

1.0.2.0

  • Bump lower bound on optparse-applicative to 0.11 to handle yet more annoying API churn.

1.0.1.0

  • Added a lower bound of 0.10 on the optparse-applicative dependency, as there were major API changes between 0.9 and 0.10.