FYI: New mercurial performance measurements (handling of large files)

Christoph.Spiel at partner.bmw.de Christoph.Spiel at partner.bmw.de
Fri Oct 19 04:23:28 CDT 2007


Hi all!

        Some weeks ago we conducted performance
measurements of Mercurial with large (> 1MB)
files.  The results were somewhat disappointing.

Meanwhile Matt and others have improved on the
crucial "bdiff"-operation.  The resulting
speed-up is significant (10x-300x).  In fact
now Mercurial is fast enough to survive a
real-life test with one of our projects.

We took 99 revisions of a project from our
current SCM system and timed the duration of
Mercurial's "commit"- and "push"-operations.
The repository used as target for "push" resided
on a server accessible via LAN.  The work-area
contained about 4000 files, where in each commit
at least 12 files were larger than 1MB, the
largest files occupying almost 70MB.  The total
size of all 99 work-areas was about 20GB.  On
the average 1000 files changed between two
revisions.

We show the detailed results in the attached
graphics file.  In particulkar, we would like to
note:
(1) The size of the repository is always small
    even for a project with a large number of
    "binary" files after a high number of
    commits.  We found a compression ratio
    (total data size over repository size) of
    about 14.
(2) The "commit"-duration never exceeded 4
    minutes compared to several hours before the
    performance patches, despite the 12 large
    files.
(3) The "push"-duration always was below 8 minutes
    again compared to several hours (or more like:
    "overnight") before the performance patches.

Most importantly, neither the "commit"-duration,
nor the "push"-duration show an increase over
the live of the project.  They both stay in a
band between 20-230 seconds for "commit" and
40-460 seconds for "push".  This means Mercurial
users won't get punished by maintaining a big,
old repository with a huge number of commited
versions.

To summarize: Mercurial is not only capable of
working with large projects containing large
files, but it handles them surprisingly fast - a
real joy to use.


Best,
        Chris

--
Dr. Christoph L. Spiel
BMW Forschungs- und Innovationszentrum, EA-410
Lauchstaedterstrasse 5, 80995 Muenchen
-------------- next part --------------
A non-text attachment was scrubbed...
Name: hg-0.9.5pre1-preformance.png
Type: image/png
Size: 13596 bytes
Desc: hg-0.9.5pre1-preformance.png
Url : http://selenic.com/pipermail/mercurial/attachments/20071019/3f58c002/attachment.png 


More information about the Mercurial mailing list