Name: NoSlow Version: 0.2 License: BSD3 License-File: LICENSE Author: Roman Leshchinskiy Maintainer: Roman Leshchinskiy Copyright: Roman Leshchinskiy 2009-10 Homepage: http://code.haskell.org/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 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 . * Renamed and reorganised loop kernels . * Several small array algorithms organised in the new benchmark category @mini@ . * More reliable benchmark execution . * Support for producing CSV files . 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, array, template-haskell, criterion >= 0.4 && < 0.5 Extensions: MultiParamTypeClasses, FlexibleInstances 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.5 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.Unboxed NoSlow.Backend.Vector NoSlow.Main.TH NoSlow.Main.Tree NoSlow.Main.Util NoSlow.Micro.Kernels NoSlow.Micro.DPH.Prim.Seq.Double NoSlow.Micro.DPH.Prim.Seq 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.Micro.Vector.Unboxed NoSlow.Micro.Vector.Unboxed.Double NoSlow.Micro.Vector.Unsafe.Unboxed NoSlow.Micro.Vector.Unsafe.Unboxed.Double NoSlow.Micro.Vector.Unsafe.Primitive NoSlow.Micro.Vector.Unsafe.Primitive.Double NoSlow.Micro.Vector.Unsafe.Storable NoSlow.Micro.Vector.Unsafe.Storable.Double NoSlow.Micro.Vector.Unsafe.Boxed NoSlow.Micro.Vector.Unsafe.Boxed.Double NoSlow.Mini.Kernels NoSlow.Mini.DPH.Prim.Seq NoSlow.Mini.List NoSlow.Mini.StorableVector NoSlow.Mini.Uvector NoSlow.Mini.Vector.Boxed NoSlow.Mini.Vector.Primitive NoSlow.Mini.Vector.Storable NoSlow.Mini.Vector.Unboxed NoSlow.Mini.Vector.Unsafe.Unboxed NoSlow.Mini.Vector.Unsafe.Primitive NoSlow.Mini.Vector.Unsafe.Storable NoSlow.Mini.Vector.Unsafe.Boxed NoSlow.Util.Base NoSlow.Util.Computation NoSlow.Util.Tag NoSlow.Util.Opts Executable noslow-table Main-Is: NoSlow/Analyse/Main.hs Build-Depends: base >= 3 && < 5, containers, criterion >=0.2, statistics >= 0.3.5 && < 4 Other-Modules: NoSlow.Analyse.Table