Benchmarks

About the repositories

repopatchesfilesdarcs dirtotal size
GHC209421298143 MB165 MB
darcs792050441 MB45 MB
tahoe-lafs423245865 MB65 MB
tabular55160.34 MB0.39 MB

General notes

Unless otherwise indicated, each benchmark was run with a hot disk cache. Before timing a benchmark, we would run it once first, without timing, to warm up the cache. See below for some results with a forced cold cache.

The number of runs for each test satisfies the following constraints:

  • at least 3 runs
  • at least 10 seconds worth of runs
  • at most 100 runs

We're currently investigating long term storage of results so that we can use more than 100 runs, and also the use of the criterion package for a more principle approach.

Benchmarks

For the most relevant benchmarks, select a machine which most resembles yours

namepurchaseddescriptionoperating systemCPURAMhard disk
GhLinux2007desktopLinux [Ubuntu 10.04]3Ghz Intel Pentium 42GB?
Quasar2008-08desktopWindows Vista (32 bit)3GHz Intel Core 2 Duo2GB7200 RPM SATA hardware RAID1
Apricot2008-02Macbook ProMacOS X 10.5.82GHz Intel Core 2 Duo4GB5400 RPM
Dewdrop2006-09MacbookMacOS X 10.6.2 (32 bit)2GHz Intel Core Duo2GB7200 RPM SATA
Vs22005desktopLinux [Debian Sid]Pentium 41GBIDE
TahoeLAFSOrg2005 or soserverLinux [Ubuntu 10.04] (32 bit)3GHz Intel Pentium 41GBSATA

General comments on the benchmarks

  1. If you upgrade to Darcs 2.4, it's a good idea to darcs optimize --pristine your repositories
  2. Note that performance for such repositories may degrade for Darcs 2.3.1, however.
  3. darcs get appears to be painfully slow on MacOS X (esp compared to Linux). Why?

Contribute benchmarks!

You just have to

cabal update
cabal install darcs-benchmark
cd /tmp/ && mkdir bench && cd bench
darcs-benchmark get
darcs-benchmark run darcs-2.3.1 darcs-2.3.99.2

For ongoing work on darcs-benchmark, try darcs get --lazy http://code.haskell.org/darcs/darcs-benchmarks or see Development/Benchmarks

Todo

Use Robert Frendt's inter-DVCS benchmarking scripts with successive versions of darcs?