Darcs Benchmarking Utility (http://wiki.darcs.net/Benchmarks)

root

Darcs benchmarking bits
=======================

Running
-------

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
darcs-benchmark.

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.