NoSlow-0.1.1: NoSlow.cabal
Name: NoSlow
Version: 0.1.1
License: BSD3
License-File: LICENSE
Author: Roman Leshchinskiy <rl@cse.unsw.edu.au>
Maintainer: Roman Leshchinskiy <rl@cse.unsw.edu.au>
Copyright: Roman Leshchinskiy 2009
Homepage: http://www.cse.unsw.edu.au/~rl/code/darcs/NoSlow
Category: Development, Profiling
Synopsis: Microbenchmarks for various array libraries
Description:
.
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 but 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 -u log@] runs the benchmarks and writes the results to 'log'
.
[@noslow-table log > table.html@] outputs the results as a HTML table.
It also supports the following options.
.
[@noslow-table log --type=Double@] only outputs the results of 'Double'
benchmarks.
.
[@noslow-table --diff log1 log2@] 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 is described in more detail here:
<http://unlines.wordpress.com/2009/11/27/noslow/>.
.
Build-Type: Simple
Cabal-Version: >= 1.2
Flag dph-prim-seq
Flag vector
Flag uvector
Flag storablevector
Executable noslow
Main-Is: NoSlow/Main.hs
Build-Depends:
base >= 3 && < 5,
template-haskell,
criterion >= 0.2 && < 0.3
Extensions:
MultiParamTypeClasses
if flag(dph-prim-seq)
build-depends: dph-prim-seq, dph-base
cpp-options: -DUSE_DPH_PRIM_SEQ
if flag(vector)
build-depends: vector >= 0.4
cpp-options: -DUSE_VECTOR
if flag(uvector)
build-depends: uvector >= 0.1
cpp-options: -DUSE_UVECTOR
if flag(storablevector)
build-depends: storablevector >= 0.2
cpp-options: -DUSE_STORABLEVECTOR
Ghc-Options:
-O2
Other-Modules:
NoSlow.Backend.DPH.Prim.Seq
NoSlow.Backend.Interface
NoSlow.Backend.List
NoSlow.Backend.StorableVector
NoSlow.Backend.TH
NoSlow.Backend.Uvector
NoSlow.Backend.Vector.Primitive
NoSlow.Backend.Vector.Storable
NoSlow.Backend.Vector
NoSlow.Main.TH
NoSlow.Main.Tree
NoSlow.Main.Util
NoSlow.Micro.DPH.Prim.Seq.Double
NoSlow.Micro.DPH.Prim.Seq
NoSlow.Micro.Kernels
NoSlow.Micro.List.Double
NoSlow.Micro.List
NoSlow.Micro.StorableVector.Double
NoSlow.Micro.StorableVector
NoSlow.Micro.Uvector.Double
NoSlow.Micro.Uvector
NoSlow.Micro.Vector.Boxed.Double
NoSlow.Micro.Vector.Boxed
NoSlow.Micro.Vector.Primitive.Double
NoSlow.Micro.Vector.Primitive
NoSlow.Micro.Vector.Storable.Double
NoSlow.Micro.Vector.Storable
NoSlow.Util.Base
NoSlow.Util.Computation
Executable noslow-table
Main-Is: Table.hs
Build-Depends:
base >= 3 && < 5,
containers,
criterion >=0.2