bzr too slow

David Allouche david at allouche.net
Tue Jan 10 15:40:25 GMT 2006


On Tue, 2006-01-10 at 19:23 +1100, Martin Pool wrote:
> On 10 Jan 2006, James Blackwell <jblack at merconline.com> wrote:
> > On Tue, Jan 10, 2006 at 05:43:31PM +1100, Martin Pool wrote:
> > > On 10 Jan 2006, Erik B?gfors <zindar at gmail.com> wrote:
> > > > Hello
> > > > 
> > > > When trying to use bzr for real stuff, I've noticed that it's way to
> > > > slow.  We have a svn repo that's 45MB and over 6000 files in it. It
> > > > takes 11m46 to run "bzr status".
> > > 
> > > That is indeed pretty slow.  Could you please run 'bzr --profile status'
> > > in there and report what it says?
> > 
> > I'm wondering if he has cElementTree. Can't that affect status?
> 
> It shouldn't be that bad.  Robert suggests it may be the
> inventory-traversal inefficiency ddaa spoke of a while ago - David,
> could you post your patch please?

By popular demand, I put my bzr branch online. There's not much
interesting there. Most of my performance improvements were superseded
by Geoffredo optimization work. And what's left should not really make a
huge different to status.

http://ddaa.net/bazaar/bzr.ddaa

This branch is based on Martin's bzr.dev. The actual performance
improvements are 1566, 1567 and 1568.

------------------------------------------------------------
revno: 1570
committer: David Allouche <david.allouche at canonical.com>
branch nick: bzr.ddaa.new
timestamp: Tue 2006-01-10 16:14:40 +0100
message:
  Save hotshot data to ~/bzr.hotshot

  That makes it possible to view the hotshot data using KCacheGrind,
  after conversion with hotshot2calltree.
------------------------------------------------------------
revno: 1569
committer: David Allouche <david.allouche at canonical.com>
branch nick: bzr.ddaa.new
timestamp: Tue 2006-01-10 16:09:11 +0100
message:
  fetcher: better style, better progress bar

  I made similar fetcher improvements as Geoffredo in parallel, but in a
  slightly more readable form. Also, my solution provided a more correct
  progress bar when restarting interrupted fetches.
------------------------------------------------------------
revno: 1568
committer: David Allouche <david.allouche at canonical.com>
branch nick: bzr.ddaa.new
timestamp: Tue 2006-01-10 15:52:07 +0100
message:
  Weave.get_iter raises WeaveInvalidChecksum when iterator is used.

  Test cases check (not very explicitly, so that might be
  unintentional) that WeaveInvalidChecksum is not raised at iterator
  creation.
------------------------------------------------------------
revno: 1567
committer: David Allouche <david.allouche at canonical.com>
branch nick: bzr.ddaa.new
timestamp: Tue 2006-01-10 15:36:18 +0100
message:
  Weave.get_lines does not go through get_iter.

  That can save _millions_ of function calls on large trees. Iterators
can be harmful to performance when iterating over large lists of small
items, where performance gains of a small active set are less than the
cost of many Python function calls.
------------------------------------------------------------
revno: 1566
committer: David Allouche <david.allouche at canonical.com>
branch nick: bzr.ddaa.new
timestamp: Tue 2006-01-10 15:27:02 +0100
message:
  fetcher: remove one underperforming call to Inventory.iter_entries
------------------------------------------------------------
revno: 1565
committer: David Allouche <david.allouche at canonical.com>
branch nick: bzr.ddaa.new
timestamp: Tue 2006-01-10 15:23:55 +0100
message:
  add performance comment to Inventory.iter_entries


-- 
                                                            -- ddaa
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part
Url : https://lists.ubuntu.com/archives/bazaar/attachments/20060110/c76dfd5c/attachment.pgp 


More information about the bazaar mailing list