--development6-rich-root performance regressions on 1.14

Brian de Alwis bsd at cs.ubc.ca
Mon Apr 20 19:24:34 BST 2009

On 19-Apr-2009, at 4:49 PM, John Arbash Meinel wrote:
> The need to 'bzr pack' after a conversion is expected. If you need to
> *continually* issue 'bzr pack' to keep decent performance, that is not
> expected.

It's expected?  I had no idea that this was true, and I've been  
following bzr for a year now.

Perhaps a pack should be automatically performed when pulling from a  
branch in a different format?

If not, may I strongly recommend that bzr help in managing the user's  
expectations and emit a recommendation to do a pack?  Otherwise  
uninformed people experimenting with the new format by pulling from  
existing branches (like me :-)  are going to have a negative experience.

>> As a comparison:
>> $ time cp -r pkgsrc-dev6-rr-packed new-branch
>> real    3m7.629s
>> user    0m2.829s
>> sys    0m33.865s
>> Brian.
> ^- That is the time to copy the repo + the working tree?

Yep.  This is on MacOSX with HFS.

> It might be enlightening to have you do "bzr co pkgsrc-dev6-rr-packed
> - --lsprof-file profile.callgrind", just to see why it takes 1m5s =>  
> 5m40s
> to build a working tree.

It's a bit large (660K) so I put it up at:


This was made using bzr installed from Bob's 1.14rc2 branch (http://bazaar.launchpad.net/%7Etanner/bzr/1.14rc2/ 
  revno 4258).

I also tried upgrading a 1.9 branch to dev6-rr.  The upgrade itself  
took almost 13 minutes and the .bzr directory is 114MB; so very  
similar to pulling into a dev6-rr branch.  Packing the upgraded branch  
took 16 minutes, but now the .bzr directory takes a total of 55MB  
(less than the 62MB from packing the pulled branch).

> Though I guess if 'cp' takes 3m7s, having bzr take ~4m30s isn't much
> worse to create all of those files.

Very true; it was the unpacked performance that was the killer.


"Amusement to an observing mind is study." - Benjamin Disraeli

More information about the bazaar mailing list