Skip to content
Ryan Newton edited this page May 23, 2014 · 18 revisions

HSBencher Overview

HSBencher is a benchmarking harness written in Haskell and designed to aggregate benchmark data from a distributed execution environment. It can be installed from Hackage.

The goal of HSBencher is to run a bunch of benchmarks, each as a single process and as the only thing running on a machine, and then repeat this process, varying across a parameter space. Properties of these runs (e.g. time elapsed) are recorded and then stored in some kind of database (see "backends" below), where they can be retrieved.

HSBencher works well with using systems like Jenkins to launch benchmark jobs on many machines, while relying on HSBencher to aggregate the benchmark data back to a single place.

Backends

  • DribbleBackend -- a simple backend for outputting to a local CSV file.
  • FusionTableBackend -- Upload data to a Google Fusion Table. Corresponds to module HSBencher.Backend.Fusion, package hsbencher-fusion.
  • BigQueryBackend -- This doesn't exist yet, but is planned for Tableau integration.

Build Methods

  • CustomBuildMethod_HowTo
  • BuiltInBuildMethods -- rudimentary cabal, ghc, and make BuildMethods