Performance improvements for bzr-2.4 on large trees

Eli Zaretskii eliz at gnu.org
Thu May 26 18:06:04 UTC 2011


> Date: Fri, 20 May 2011 00:24:05 +0200
> From: John Arbash Meinel <john at arbash-meinel.com>
> Cc: Bazaar Development List <bazaar at lists.canonical.com>
> 
> #2, I didn't specifically improve stat/add/commit times. I'm not sure
> about add, but commit already was trying to use the update-by-delta code
> (that was the code that I cleaned up to support any delta, rather than
> only supporting commit deltas).
> So the places you'll see the most benefit are the ones I mentioned.
> merge/pull/update/uncommit.

These are, of course, important commands to make faster, but there are
a few more: "log" and "status".  These are fast enough in "normal"
usage, e.g. (in the Emacs trunk):

  D:\gnu\bzr\emacs\trunk>timep bzr log -l1000 >nul

  real    00h00m01.296s
  user    00h00m01.000s
  sys     00h00m00.265s

  D:\gnu\bzr\emacs\trunk>timep bzr st -r100000..101000 >nul

  real    00h00m02.171s
  user    00h00m01.812s
  sys     00h00m00.281s

But try using them on a revision that is not on mainline, and you will
see a significant performance degradation:

  D:\gnu\bzr\emacs\trunk>timep bzr st -c99634.12.18 >nul

  real    00h00m10.687s
  user    00h00m10.234s
  sys     00h00m00.406s

  D:\gnu\bzr\emacs\trunk>timep bzr log --include-merges -c104363 >nul

  real    00h00m09.562s
  user    00h00m09.250s
  sys     00h00m00.296s

  D:\gnu\bzr\emacs\trunk>timep bzr log -l2 lisp/progmodes/python.el >nul

  real    00h00m16.828s
  user    00h00m16.234s
  sys     00h00m00.484s

Are there any plans to speed up those as well?

Another command that I wish was faster is "annotate":

  D:\gnu\bzr\emacs\trunk>timep bzr annotate lisp/progmodes/python.el >nul

  real    00h00m26.343s
  user    00h00m25.296s
  sys     00h00m00.593s

  D:\gnu\bzr\emacs\trunk>timep bzr annotate src/xdisp.c >nul

  real    00h01m23.750s
  user    00h01m19.250s
  sys     00h00m03.734s

TIA



More information about the bazaar mailing list