[darcs-users] Darcs 2.4 - performance testing (stage 0)

Jason Dagit dagit at codersbase.com
Fri Dec 25 04:36:31 UTC 2009

On Thu, Dec 24, 2009 at 9:13 AM, Eric Kow <kowey at darcs.net> wrote:

> Hi all,
> Thanks to all the volunteers who signed up to participate in darcs
> benchmarking.
> Benchmark volunteers found!
> ----------------------------------------------------------------------
> So far we have
>  Max Battcher : Windows Vista
>  Nathan Gray  : Linux
>  Jason Dagit  : MacOS X
By the way, I'm still on Leopard.  I considered moving to Snow Leopard but I
don't see what I would gain from doing so and I know of several things it
make more difficult.  Either way, I seriously doubt the exact OS version
will make an impact on darcs performance in this case.

> Request zero: please install the following software
> ----------------------------------------------------------------------
> Could all volunteers please ensure that you can cabal install the
> following:
>   - darcs-2.3.1 (manually rename this afterwards to darcs-2.3.1)
>   - darcs-benchmark
>   - HEAD darcs

I ran into a some minor problems on the last one.  For some odd reason
(likely because our Setup.hs is non-trivial) if you need to specify
extra-libs and extra-includes to the configure step of cabal then you'll
also need them on the install step.

Once I installed libicu (sudo port install icu) my command was something
like this:
cabal configure --extra-libs-dir=/opt/local/libs
cabal build
cabal install --extra-libs-dir=/opt/local/libs

Unfortunately, my computer locked up during my first pass through the
benchmarks so I don't have the exact commands handy.  The above is from and
I think it should be close.

It may also help to make a test run
> 1. Make a benchmarking directory
> 2. darcs-benchmark --get
> 3. Run darcs-benchmark comparing darcs-2.3.1 and darcs HEAD

The command to run, assuming you have the binaries in your path is:
darcs-benchmark darcs darcs-2.3.1

Sadly, darcs-benchmark --help tells you nothing.  Maybe someone will get
interested and submit a patch :)

The next observation is that not all of the benchmarks work:
\begin{terminal dump}
$ darcs-benchmark darcs darcs-2.3.1
darcs get (full) [darcs]: 1!..2!..                         216.3s, 11.0M
darcs get (lazy, x10) [darcs]: 1!..2!..                    95.1s, 2.0M
darcs pull 100 [darcs]: 1!..2...                           5.1s, 17.0M
darcs annotate [darcs]: 1...2...                           81.4s, 182.0M
darcs wh x50 [darcs]: 1...2...                             2.9s, 2.0M
darcs wh mod x50 [darcs]: 1...2...                         5.3s, 2.0M
darcs wh -l x20 [darcs]: 1...2...                          1.8s, 2.0M
darcs check [darcs]: 1...2...                              118.0s, 256.0M
darcs repair [darcs]: 1...2...                             109.0s, 261.0M
darcs pull 1000 [darcs]: 1... error: user error (darcs failed with error
code 2
darcs failed:  Can't unpull patch without reverting some unrecorded change.
darcs-2.3.1 get (full) [darcs]: 1...2!..                   250.2s, 10.0M
darcs-2.3.1 get (lazy, x10) [darcs]: 1!..2!..              97.8s, 2.0M
darcs-2.3.1 pull 100 [darcs]: 1!..2...                     7.6s, 23.0M
darcs-2.3.1 annotate [darcs]: 1...2...                     88.0s, 180.0M
darcs-2.3.1 wh x50 [darcs]: 1...2...                       3.2s, 2.0M
darcs-2.3.1 wh mod x50 [darcs]: 1...2...                   5.1s, 2.0M
darcs-2.3.1 wh -l x20 [darcs]: 1...2...                    5.0s, 4.0M
darcs-2.3.1 check [darcs]: 1...2...                        25.9s, 50.0M
darcs-2.3.1 repair [darcs]: 1...2...                       31.1s, 43.0M
darcs-2.3.1 pull 1000 [darcs]: 1... error: user error (darcs failed with
error code 2
saying: Reading pristine 26/485

darcs failed:  Can't unpull patch without reverting some unrecorded change.
darcs get (full) [ghc-hashed]: 1!..

I'm not all the way through the benchmark yet and I'll post my results
later, but I wanted to share the failure in the pull benchmark.  Seems to be
happening on both versions and both times I run the benchmark.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osuosl.org/pipermail/darcs-users/attachments/20091224/33e834fb/attachment-0001.htm>

More information about the darcs-users mailing list