hsbencher alternatives and similar packages
Based on the "Development" category.
Alternatively, view hsbencher alternatives based on common mentions on social networks and blogs.
-
criterion
A powerful but simple library for measuring the performance of Haskell code. -
haskell-lsp
Haskell library for the Microsoft Language Server Protocol -
cabal-install-parsers
Scripts and instructions for using CI services (e.g. Travis CI or Appveyor) with multiple GHC configurations -
stgi
A user-centric visual STG implementation to help understand GHC/Haskell's execution model. -
structured-haskell-mode
Structured editing minor mode for Haskell in Emacs -
inline-c
Write Haskell source files including C code inline. No FFI required. -
inline-java
Haskell/Java interop via inline Java code in Haskell modules. -
gi-atk
Generate Haskell bindings for GObject-Introspection capable libraries -
lambdabot-core
A friendly IRC bot and apprentice coder, written in Haskell. -
fourmolu
A fourk of ormolu that uses four space indentation and allows arbitrary configuration. Don't like it? PRs welcome! -
scion
OLD, DEPRECATED: Use this instead https://github.com/haskell/haskell-ide-engine -
lambdabot
A friendly IRC bot and apprentice coder, written in Haskell. -
threadscope
A graphical tool for profiling parallel Haskell programs
Access the most powerful time series database as a service
Do you think we are missing an alternative of hsbencher or a related project?
Popular Comparisons
README
HSBencher: A flexible benchmarking framework
Build/test Status:
Overview
See hsbencher.cabal for a general overview. Here are a few useful facts:
- The
hsbencher
package is for describing benchmark configuration spaces, launching jobs, and collecting data for them - Jobs can take many forms. Some included protocols are described below, but you can always add your own
BuildMethod
. - Other packages like
hsbencher-fusion
andhsbencher-codespeed
provide additional backends for uploading benchmark data to network destinations.
Below we describe some of the rules benchmarks must follow. But you will find much more general documentation on the project's Wiki.
Protocols for benchmarks to follow
All benchmarks, via all BuildMethods
Benchmarks using any BuildMethod, including BuildMethods added by the end user obey the following conventions:
Timing -- complete process runtime is used by default, this can be overridden by having the benchmark print out a line such as
SELFTIMED 3.3
on stdout , which would indicate a 3.3 second runtime.Coming soon -- compile time timing and multi-phase timing (e.g. for Accelerate)
"shortrun" -- all benchmarks should run and do SOMETHING even if given no runtime arguments. The convention is for quick tests (correctness, not performance) to run in this way. HSBencher supports a
--shortrun
mode that enables this. Note that it still passes in environment variables and "parameters", it elides only thecmdargs
field of theBenchmark
record.
Benchmarks using the builtin 'make' BuildMethod
make
should build the benchmark.make run
should run the benchmark- compile time arguments are provided with
make COMPILE_ARGS='...'
- runtime arguments are provided with
make run RUN_ARGS='...'
Benchmarks using the builtin cabal BuildMethod
- One .cabal file should be contained in the directory.
- Either the directory itself, or a file within the directory can be the benchmark "target".
- ONE executable target should be built when
cabal install
orcabal-dev install
is invoked. - compile time arguments are formatted for cabal-install
- runtime arguments are provided to the resulting executable, raw
(i.e. you need to include
+RTS -RTS
yourself)
Benchmarks using the builtin ghc BuildMethod
- A single .hs file should be specified as the build target
- It should build by running
ghc --make
on the target file; any include directories beyond the one containing the target file must be added explicitly (as CompileParam's) - compile time arguments are formatted for ghc command line
- runtime arguments are provided to the resulting executable, raw
(i.e. you need to include
+RTS -RTS
yourself)