hg performance (was: Re: On Mercurial API)

Giorgos Keramidas keramida at ceid.upatras.gr
Mon Aug 13 14:19:47 CDT 2007


On 2007-08-13 09:56, Dustin Sallings <dustin at spy.net> wrote:
>On Aug 10, 2007, at 5:41 , Emanuele Aina wrote:
>> Mercurial command line interface seems quite stable to me, at least
>> as stable as the GIT one. The performance should be similar, with GIT
>> being a little bit faster as it doesn't need the slow python
>> interpreter  startup.
>
> I don't know that that's strictly true.

Me neither.  My experience so far (with Mercurial Crew and Git 1.5.X
installations) has been that Mercurial is consistently faster.

> I consistently got better performance from mercurial than git when
> working on the jdk tree.  The import was always *significantly* faster
> in hg, whereas the clone ranged from much faster to much slower (it
> was consistent on the hg side, but varied greatly in git).
>
> Here are some notes I took:

This matches the results I got by importing a checkout of GNU Emacs in
Hg and Git:

% Source tree:    GNU Emacs, CVS snapshot
% Size:           90+ MB
%
% ==============================================================================
%
%                      1. INITIAL 'ADD' OF ALL FILES
%                      _____________________________
%
% x git-add
% + hg-add
% +------------------------------------------------------------------------------+
% | +                                                                            |
% | +                                                                            |
% |++                                                                            |
% |++                                                                            |
% |++                                                                            |
% |++                                                                            |
% |++                                                                            |
% |++                                                            x               |
% |++                                               x            x xx            |
% |++                                               x x     x  xxxxxxx    x  x  x|
% ||A                                                     |______AM______|       |
% +------------------------------------------------------------------------------+
%     N           Min           Max        Median           Avg        Stddev
% x  18         29.51         45.97        37.595     37.431111     4.3922229
% +  18          1.27          1.94         1.615     1.5705556    0.19043209
% Difference at 95.0% confidence
%         -35.8606 +/- 2.10562
%         -95.8041% +/- 5.62532%
%         (Student's t, pooled s = 3.10869)

The ministat output shows that Hg is 'faster', while Git's speed has a
greater deviation, but this may be a result of the way I ran the 30 or
so tests for each one.

The test used my laptop's disk for storage, so there may be disk-related
delays.  Running with a memory-backed virtual filesystem may show more
useful information about the relative speed of each SCM.

Anyway, just a +1 for "Hg seems faster with the tests I've run" from me.

- Giorgos



More information about the Mercurial mailing list