--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:
http://www.cs.usask.ca/~bsd178/tmp/bzr-1.14rc2-pkgsrc-profile.callgrind
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.
Brian.
--
"Amusement to an observing mind is study." - Benjamin Disraeli
More information about the bazaar
mailing list