@hackage darcs-benchmark0.1.8.3

Comparative benchmark suite for darcs.

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.