gauge: small framework for performance measurement and analysis

[ benchmarking, bsd3, development, performance, testing ] [ Propose Tags ]

This library provides a powerful but simple way to measure software performance. It provides both a framework for executing and analysing benchmarks and a set of driver functions that makes it easy to build and run benchmarks, and to analyse their results.


[Skip to Readme]

Flags

Manual Flags

NameDescriptionDefault
analysis

Build with statistical analysis support

Enabled

Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

  • No Candidates
Versions [RSS] 0.1.0, 0.1.1, 0.1.2, 0.1.3, 0.2.0, 0.2.1, 0.2.2, 0.2.3, 0.2.4, 0.2.5
Change log changelog.md
Dependencies base (>=4.7 && <5), basement (>=0.0.4), deepseq (>=1.1.0.0), directory, process, vector (>=0.7.1) [details]
License BSD-3-Clause
Copyright 2009-2016 Bryan O'Sullivan and others
Author Bryan O'Sullivan <bos@serpentine.com>
Maintainer Vincent Hanquez <vincent@snarc.org>
Category Development, Performance, Testing, Benchmarking
Home page https://github.com/vincenthz/hs-gauge
Bug tracker https://github.com/vincenthz/hs-gauge/issues
Source repo head: git clone https://github.com/vincenthz/hs-gauge
Uploaded by VincentHanquez at 2018-06-25T08:34:14Z
Distributions Arch:0.2.5, LTSHaskell:0.2.5, NixOS:0.2.5, Stackage:0.2.5
Reverse Dependencies 2 direct, 1 indirect [details]
Downloads 10830 total (54 in the last 30 days)
Rating 2.5 (votes: 3) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2018-06-25 [all 1 reports]

Readme for gauge-0.2.2

[back to package description]

Gauge: a clone of criterion

This is a clone of criterion with a code / dependencies on a diet. It works the same way as criterion for outputing to terminal benchmark data.

features compared to criterion

missing:

  • JSON export
  • HTML/javascript pages
  • Glob benchmark matching

Added:

  • Small condensed output (-s or --small)
  • Raw measurements dumping (CSV)

Future Feature Plan

  • Remove further dependencies
  • storing benchmarks data in CSV and JSON
  • Add a standalone program taking benchmark data files and rendering to html/javascript/graphs
  • Make the library more useful as a standalone library to gather benchmark numbers related to functions in a programatic way

Small mode

It's hard to compare many benchmarks with criterion, so gauge has a --small output:

identity                                 mean 41.65 ns  ( +- 2.246 ns  )
slow                                     mean 163.9 ns  ( +- 9.683 ns  )

Direct dependencies removed compared to criterion

Number of total dependencies (direct & indirect):

  • gauge: 12 dependencies
  • criterion: 63 dependencies

Dependencies removed:

  • Glob 0.8.0
  • abstract-deque 0.3
  • abstract-par 0.3.3
  • aeson 1.1.2.0
  • ansi-terminal 0.6.3.1
  • ansi-wl-pprint 0.6.7.3
  • array 0.5.1.1
  • attoparsec 0.13.1.0
  • base-compat 0.9.3
  • base-orphans 0.6
  • binary 0.8.3.0
  • blaze-builder 0.4.0.2
  • bytestring 0.10.8.1
  • cassava 0.4.5.1
  • cereal 0.5.4.0
  • code-page 0.1.3
  • containers 0.5.7.1
  • criterion 1.2.2.0
  • directory 1.3.0.0
  • dlist 0.8.0.3
  • erf 2.0.0.0
  • exceptions 0.8.3
  • filepath 1.4.1.1
  • ghc-boot-th 8.0.2
  • hashable 1.2.6.1
  • integer-gmp 1.0.0.1
  • integer-logarithms 1.0.2
  • js-flot 0.8.3
  • js-jquery 3.2.1
  • math-functions 0.2.1.0
  • microstache 1.0.1.1
  • monad-par 0.3.4.8
  • monad-par-extras 0.3.3
  • mtl 2.2.1
  • mwc-random 0.13.6.0
  • optparse-applicative 0.13.2.0
  • parallel 3.2.1.1
  • parsec 3.1.11
  • pretty 1.1.3.3
  • process 1.4.3.0
  • random 1.1
  • scientific 0.3.5.2
  • statistics 0.14.0.2
  • stm 2.4.4.1
  • tagged 0.8.5
  • template-haskell 2.11.1.0
  • text 1.2.2.2
  • time 1.6.0.1
  • time-locale-compat 0.1.1.3
  • transformers-compat 0.5.1.4
  • unix 2.7.2.1
  • unordered-containers 0.2.8.0
  • uuid-types 1.0.3
  • vector-algorithms 0.7.0.1
  • vector-binary-instances 0.2.3.5
  • vector-th-unbox 0.2.1.6

Criterion graph of dependencies:

Criterion

Gauge graph of dependencies:

Gauge