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]

Downloads

Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.

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.8 && <4.11), basement, code-page, containers, deepseq (>=1.1.0.0), math-functions, mwc-random (>=0.8.0.3), 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>
Revised Revision 1 made by HerbertValerioRiedel at 2018-10-20T21:10:27Z
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 2017-10-30T16:37:33Z
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 10863 total (51 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 2017-10-30 [all 1 reports]

Readme for gauge-0.1.3

[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:

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

Added:

  • Small condensed output (-s or --small)

Future Feature Plan

  • Remove further dependencies
  • storing benchmarks data in CSV and JSON
  • Add a standalong 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: 20 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
  • 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
  • hashable 1.2.6.1
  • integer-logarithms 1.0.2
  • js-flot 0.8.3
  • js-jquery 3.2.1
  • microstache 1.0.1.1
  • monad-par 0.3.4.8
  • monad-par-extras 0.3.3
  • mtl 2.2.1
  • optparse-applicative 0.13.2.0
  • parallel 3.2.1.1
  • parsec 3.1.11
  • 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
  • text 1.2.2.2
  • 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

Criterion graph of dependencies:

Criterion

Gauge graph of dependencies:

Gauge