The darcs-benchmark package

[Tags:bsd3, program]

A simple tool to compare performance of different Darcs 2.x instances. The program can download a set of test repositories, or you can provide your own. Run the program without parameters to get help.

[Skip to Readme]


Versions 0.1, 0.1.1, 0.1.2, 0.1.3,, 0.1.6, 0.1.7, 0.1.8,,,, 0.1.9
Dependencies base (<5), bytestring, cmdargs, containers, datetime, directory, filepath, hs-gchart, html, HTTP (>=4000.0.8 && <4000.1), json (==0.4.*), mtl, network (==2.2.*), old-locale, process, regex-posix, SHA, split (==0.1.*), statistics (==0.4.*), strict, tabular (>=, tar, time, utf8-string (==0.3.*), uvector (==0.1.*), zlib [details]
License BSD3
Copyright 2009 Petr Rockai <>
Author Eric Kow <>, Simon Michael <> and Petr Rockai <>
Maintainer Darcs Project <>
Category Testing
Home page
Source repository head: darcs get
Uploaded Sun Aug 8 14:25:18 UTC 2010 by EricKow
Distributions NixOS:0.1.9
Downloads 2621 total (37 in the last 30 days)
0 []
Status Docs not available [build log]
All reported builds failed as of 2016-11-11 [all 9 reports]
Hackage Matrix CI


Maintainer's Corner

For package maintainers and hackage trustees

Readme for darcs-benchmark

Readme for darcs-benchmark-0.1.9

Darcs benchmarking bits


Say `cabal install` to build and install the darcs-benchmark binary. When you
have one, run it to obtain further instructions. (Hint: --get will download the
benchmark repositories.)

Writing Benchmarks

Please take a look at Standard.hs: this is a module with a bunch of "standard
darcs benchmarks", currently get, annotate, check, repair and some other. It
should be fairly clear how to write your own from these examples. Timing is the
overall time spent in the benchmark, memory is the peak memory usage reported
by RTS, from darcs invocations only (this also means that the darcs executables
supplied need to accept +RTS ... options).

Adding repositories

To add a new repository:

- cd my-bench-repo && tar czf ../my-bench-repo.tgz .
- upload the result somewhere and tell mornfall (me-at-mornfall-dot-org)

To test locally, just darcs get /path/to/your/repository repo.your-repo and run

Obtaining Profiles

Not yet implemented, but shouldn't be too hard. Probably we need to:

- detect whether the binaries are compiled with profiling enabled,
- pass in the right RTS flags to produce some profiling output,
- stash away this output after each darcs invocation, to a predictable place.