--development6-rich-root performance regressions on 1.14

John Arbash Meinel john at arbash-meinel.com
Sun Apr 19 23:49:05 BST 2009


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Brian de Alwis wrote:
> I tried taking some timings on a simple but big branch using John's
> 1.14rc1 + dev6-rr fixes (lp:~jameinel/bzr/1.14-dev6rr-fixes); this
> install has the compiled extensions.  I was expecting to see some
> amazing improvements using the new --development6-rich-root format, but
> I instead saw regressions both in diskspace and time.  Because the
> numbers for the dev6-rr branch were so out of whack, I tried re-packing
> the dev6-rr branch with 'bzr pack', which made a tremendous difference
> both in diskspace and performance.

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.


> 
> My test branch is a personal bzr branch that I use to track pkgsrc.org's
> CVS repository; I periodically update from CVS and then commit the
> result to bzr.  The branch has 19 revisions, 92979 files, and 25554
> directories.  The original branch is in a 1.9 format.  I pulled from the
> original branch into a dev6-rr branch, and then timed branching from the
> 1.9 and the dev6-rr branches to new branches.
> 
> In case anybody is interested in repeating trying these timings, I've
> put the 1.9 and dev6-rr-packed branches at:
> 
>     http://www.cs.usask.ca/~bsd178/tmp/pkgsrc-1.9
>     http://www.cs.usask.ca/~bsd178/tmp/pkgsrc-dev6-rr
> 
> High-level comparison:
> 
> 1.9 branch:
> diskspace of .bzr:    76M
> branch --no-tree:    0m48.111s
> branch:            11m45.759s
> 
> dev6-rr before 'bzr pack':
> diskspace of .bzr:    121M
> branch --no-tree:    16m40.690s
> branch:            20m41.885s
> 
> dev6-rr after 'bzr pack':
> diskspace of .bzr:    62M
> branch --no-tree:    1m5.883s
> branch:            5m40.896s
> 

^- I would have actually expected it to be even smaller, but at a
minimum it is at least smaller than 1.9. I guess it is a very wide (90k
files) tree, but not very "deep" (only 19 revs).

> 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?

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.

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

John
=:->

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (Cygwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAknrqmEACgkQJdeBCYSNAAMvpQCfTMTp0BkeF7FAmXhe4QKTZcen
7N8AoL7eWVAh1rIY5Ln1G1NTOLg1Gicp
=xk9q
-----END PGP SIGNATURE-----



More information about the bazaar mailing list