[darcs-users] Benchmark results.

Petr Rockai me at mornfall.net
Wed Dec 24 23:01:01 UTC 2008


Petr Rockai <me at mornfall.net> writes:
> === big-zoo/darcs-repo ===
>
>           || ../branch-2.2/darcs     | ../release-2.0.2/darcs    
> ==========++=========================+===========================
>  annotate ||               16.1s 64M |                  16.3s 63M
>     check ||               16.0s  8M |                  25.4s  4M
>  get full ||               11.3s  2M |                  13.1s  2M
>  get lazy ||                2.0s  0M |                   2.2s  0M
>  pull 100 ||                9.4s  7M |                  10.3s  7M
> pull 1000 ||               74.9s 18M |                  87.8s 16M
>    repair ||               16.6s 10M |                 184.7s 44M

And here come the promised results. Still the same box (16G RAM, core 2 Xeons),
this time on a local filesystem, with global cache enabled and stored on the
same filesystem as benchmark data. I have highlighted the check and repair
lines, as this is my personal focus for this release.

=== big-zoo/darcs-repo ===
          
          || darcs-2.0.2     | darcs-2.1     | darcs-2.2+
==========++=================+===============+===============
 annotate ||       11.3s 64M |     10.8s 62M |      10.2s 64M
    check ||       19.2s  5M |     18.8s  6M |       9.4s 12M <--
 get full ||        3.5s  2M |      2.2s  2M |       7.9s  3M !!
 get lazy ||        0.4s  0M |      0.3s  0M |       0.7s  0M
 pull 100 ||        3.8s  9M |      3.6s  9M |       3.3s  9M
pull 1000 ||       30.4s 14M |     29.5s 15M |      18.2s 18M
   repair ||       30.0s 65M |     18.2s 73M |       9.0s 13M <--

=== big-zoo/frugalware-hashed ===
          
          || darcs-2.0.2      | darcs-2.1      | darcs-2.2+
==========++==================+================+===============
    check ||       76.8s  22M |     73.0s  23M |      85.2s 42M <--
 get full ||       18.7s  11M |     12.7s  10M |      57.3s  9M !!
 get lazy ||        4.4s   2M |      2.7s   2M |      10.6s  0M
 pull 100 ||       24.1s  17M |     19.7s  17M |      19.4s 20M
pull 1000 ||       45.3s  23M |     40.6s  22M |      38.9s 28M
   repair ||      154.0s 299M |   3482.6s 409M |      84.6s 42M <--

=== big-zoo/ghc-hashed ===
          
          || darcs-2.0.2      | darcs-2.1      | darcs-2.2+
==========++==================+================+===============
    check ||      109.5s  47M |    105.7s  47M |     107.5s 67M <--
 get full ||       16.2s  19M |     12.6s  18M |      41.4s 19M !!
 get lazy ||        1.3s   0M |      1.1s   0M |       3.0s  0M
 pull 100 ||       77.5s  37M |     78.3s  37M |      78.7s 36M
pull 1000 ||      152.4s  47M |    150.9s  48M |     120.6s 53M
   repair ||      616.1s 505M |    259.1s 587M |     107.6s 67M <--

=== big-zoo/small-repo ===
          
          || darcs-2.0.2    | darcs-2.1    | darcs-2.2+
==========++================+==============+==============
 annotate ||        0.0s 0M |      0.0s 0M |       0.0s 0M
    check ||        0.1s 0M |      0.1s 0M |       0.4s 9M <--
 get full ||        0.0s 0M |      0.0s 0M |       0.1s 0M
 get lazy ||        0.0s 0M |      0.0s 0M |       0.0s 0M
 pull 100 ||        0.2s 0M |      0.2s 0M |       0.2s 0M
pull 1000 ||        0.2s 0M |      0.2s 0M |       0.2s 0M
   repair ||        0.1s 0M |      0.1s 0M |       0.2s 9M <--

I am happy to note that both time and memory use for repair has went down
significantly since darcs 2.0.2 with the proposed repair/check patch. If the
patch gets in (ie. it is deemed correct or otherwise fixed), I will
unilaterally declare the following goal satisfied:

1) Work on improving the situation with repair/check performance regression
that was introduced (by me) somewhere around 2.0.2, without compromising the
improved robustness...

Also, the pull times in darcs-2.2 have improved compared to 2.0.2 and 2.1,
across the board. What however bothers me is the get time for the big
repositories (marked with exclamation marks): something's definitely wrong
there. This needs investigating before the 2.2 release for sure. I suspect a
quirk with cache handling somewhere? For now, I'm opening an issue with
bugs.darcs.net: http://bugs.darcs.net/issue1282

Thorkil, it might make sense to clear up the topics and standardise on a single
way to make a list of "release critical" issues.

Looking at "edit topics" I see:
ReleaseTarget-2009-01
OldReleaseCritical
ReleaseGoal

Yours,
   Petr.

-- 
Peter Rockai | me()mornfall!net | prockai()redhat!com
 http://blog.mornfall.net | http://web.mornfall.net

"In My Egotistical Opinion, most people's C programs should be
 indented six feet downward and covered with dirt."
     -- Blair P. Houghton on the subject of C program indentation


More information about the darcs-users mailing list