NoSlow: Microbenchmarks for various array libraries

[ bsd3, development, profiling, program ] [ Propose Tags ]

NoSlow is a benchmark suite for several Haskell array libraries: standard lists, primitive sequential arrays from the DPH project, uvector, vector (primitive, storable and boxed arrays) and storablevector. At the moment, it implements a bunch of fairly random loop micro-kernels and a couple of small array algorithms. It will include many more benchmarks in the future.

In its present state, NoSlow cannot be used to reliably compare the performance of the benchmarked libraries. It can be quite helpful for identifying cases where a closer inspection of the generated code might be warranted, however.

The package builds two binaries: noslow and noslow-table.

noslow -o log
runs the benchmarks and writes the results to log
noslow-table log -o table.html --html
outputs the results from log as a HTML table.
noslow-table log -o table.html --raw --csv
outputs the results from log as a CSV file suitable for importing into spreadsheets.
noslow-table --diff log1 log2 -o table.html@
produces a table comparing the results from log1 and log2 (2 means the first run was 2x slower than the second; 0.5 means 2x faster).
noslow-table --help
lists additional options.

NoSlow is described in more detail here:

Changes since version 0.1

Versions [RSS] [faq] 0.1, 0.1.1, 0.2
Dependencies array, base (>=3 && <5), containers, criterion (==0.4.*), dph-base, dph-prim-seq, statistics (>=0.3.5 && <4), storablevector (>=0.2), template-haskell, uvector (>=0.1), vector (>=0.5) [details]
License BSD-3-Clause
Copyright Roman Leshchinskiy 2009-10
Author Roman Leshchinskiy <>
Maintainer Roman Leshchinskiy <>
Category Development, Profiling
Home page
Uploaded by RomanLeshchinskiy at 2010-02-15T11:48:07Z
Distributions NixOS:0.2
Executables noslow-table, noslow
Downloads 2709 total (9 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs not available [build log]
All reported builds failed as of 2016-10-25 [all 10 reports]

Manual Flags

Automatic Flags

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


Maintainer's Corner

For package maintainers and hackage trustees