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]


Versions0.1, 0.1.1, 0.1.2, 0.1.3,, 0.1.6, 0.1.7, 0.1.8,,,, 0.1.9
Change logNone available
Dependenciesbase (<5), bytestring, cmdargs (==0.1.*), containers, directory, filepath, html, HTTP (>=4000.0.8 && <4000.1), json (==0.4.*), mtl, network, process, regex-posix, statistics (==0.4.*), tabular (>=, tar, time, utf8-string (==0.3.*), uvector (==0.1.*), zlib [details]
Copyright2009 Petr Rockai <>
AuthorEric Kow <>, Simon Michael <> and Petr Rockai <>
MaintainerDarcs Project <>
Home page
Source repositoryhead: darcs get
UploadedMon Feb 22 17:24:02 UTC 2010 by EricKow
Downloads1877 total (77 in last 30 days)
0 []
StatusDocs not available [build log]
All reported builds failed as of 2015-05-26 [all 1 reports]


Maintainers' corner

For package maintainers and hackage trustees

Readme for darcs-benchmark-0.1.7

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.