Another (unscientific) comparison of Mercurial and Bazaar

Ian Clatworthy ian.clatworthy at internode.on.net
Wed Aug 1 01:54:22 BST 2007


Fabio Machado de Oliveira wrote:
> My main performance issue would be with the commit command (if I could
> get past the barrier of convincing 200+ people to change their version
> control). A single file commit in a project with 10000 files and 115
> directories:
> 
> 
> 
>           1337607 function calls (1299480 primitive calls) in 32.526 CPU
> seconds
> 
>     Ordered by: cumulative time
>     List reduced from 1023 to 20 due to restriction <20>
> 
>     ncalls  tottime  percall  cumtime  percall filename:lineno(function)
>          1    0.000    0.000   32.526   32.526
> commands.py:368(run_argv_aliases)
>          1    0.002    0.002   32.518   32.518 builtins.py:2187(run)

Yes, the biggest two hot spots in my benchmarking are commit and
branch/checkout.

I've been working on commit with lots of help from people much smarter
than me and there is a solid understand of what still needs to be done.
I've temporarily switched focus to documentation because we need more
structure/quality there right now but I expect to be back on commit
performance in the next week or two.

BTW, if you haven't already, try the graphical profiling view given by
KCacheGrind. I've attached a sample showing the latest bzr.dev (with the
pyrex stuff compiled) running commit on a mozilla-ish tree (~ 50k files)
with quite shallow history (~ 10 revisions). It would be interesting to
see the same on your tree with your history. If you want to find that,
it's as easy as this:

  bzr --lsprof-file callgrind.out.ci commit -m "blah"
  kcachegrind callgrind.out.ci

As you'll see from the attached, _populate_from_inventory() takes 57% of
the overall time. That will dramatically drop once that routine is
replaced by a far more efficient way of doing things. If you're keen to
help at all, let me know.

Ian C.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: commit-profile.png
Type: image/png
Size: 135222 bytes
Desc: not available
Url : https://lists.ubuntu.com/archives/bazaar/attachments/20070801/cc4ab2a4/attachment-0001.png 


More information about the bazaar mailing list