--development6-rich-root performance regressions on 1.14

Brian de Alwis bsd at cs.ubc.ca
Sun Apr 19 22:01:53 BST 2009


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.

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

As a comparison:
$ time cp -r pkgsrc-dev6-rr-packed new-branch

real	3m7.629s
user	0m2.829s
sys	0m33.865s

Brian.



More detailed timings/diskpace:

# This is the bzr-1.9 branch
$ du -h pkgsrc-1.9/.bzr
   0B	pkgsrc-1.9/.bzr/branch/lock
  16K	pkgsrc-1.9/.bzr/branch
   0B	pkgsrc-1.9/.bzr/branch-lock
   0B	pkgsrc-1.9/.bzr/checkout/lock
  15M	pkgsrc-1.9/.bzr/checkout
2.6M	pkgsrc-1.9/.bzr/repository/indices
   0B	pkgsrc-1.9/.bzr/repository/lock
   0B	pkgsrc-1.9/.bzr/repository/obsolete_packs
  58M	pkgsrc-1.9/.bzr/repository/packs
   0B	pkgsrc-1.9/.bzr/repository/upload
  61M	pkgsrc-1.9/.bzr/repository
  76M	pkgsrc-1.9/.bzr

# This is the dev6-rr branch before a 'bzr pack'
$ du -h /tmp/pkgsrc-devrr6/.bzr
   0B	.bzr/branch/lock
  16K	.bzr/branch
   0B	.bzr/branch-lock
   0B	.bzr/checkout/lock
  21M	.bzr/checkout
3.7M	.bzr/repository/indices
   0B	.bzr/repository/lock
   0B	.bzr/repository/obsolete_packs
  97M	.bzr/repository/packs
   0B	.bzr/repository/upload
100M	.bzr/repository
121M	.bzr

# This is the dev6-rr branch after a 'bzr pack' and tossing the  
obsolete_packs
$ du -h /tmp/pkgsrc-devrr6/.bzr
   0B	.bzr/branch/lock
  16K	.bzr/branch
   0B	.bzr/branch-lock
   0B	.bzr/checkout/lock
  21M	.bzr/checkout
2.1M	.bzr/repository/indices
   0B	.bzr/repository/lock
   0B	.bzr/repository/obsolete_packs
  40M	.bzr/repository/packs
   0B	.bzr/repository/upload
  42M	.bzr/repository
  62M	.bzr



# Time to branch the 1.9 format branch with --no-tree
$ time tbzr --no-plugins branch --no-tree pkgsrc-1.9 pkgsrc-1.9-nt
Branched 19 revision(s).

real	0m48.111s
user	0m35.054s
sys	0m6.278s

# Time to branch the 1.9 format branch with a working tree *before*  
'bzr pack'
$ time tbzr --no-plugins branch pkgsrc-1.9/ pkgsrc-1.9-tree
Branched 19 revision(s).

real	11m45.759s
user	1m19.804s
sys	0m53.616s


# Time to branch the dev6-rr branch with --no-tree *before* 'bzr pack'
$ time tbzr --no-plugins branch --no-tree pkgsrc-dev6-rr pkgsrc-dev6- 
rr-nt
Branched 19 revision(s).

real	16m40.690s
user	9m54.809s
sys	5m41.191s

# Time to branch the dev6-rr branch with a working tree *before* 'bzr  
pack'
$ time tbzr --no-plugins branch pkgsrc-dev6-rr pkgsrc-dev6-rr-tree
Branched 19 revision(s).

real	20m41.885s
user	10m14.476s
sys	6m11.934s

# Time to branch the dev6-rr branch with --no-tree *after* 'bzr pack'
$ time tbzr --no-plugins branch --no-tree pkgsrc-dev6-rr pkgsrc-dev6- 
rr-packed-nt
Branched 19 revision(s).

real	1m5.883s
user	0m53.303s
sys	0m6.891s

# Time to branch the dev6-rr with a working tree *after* 'bzr pack'
$ time tbzr --no-plugins branch pkgsrc-dev6-rr pkgsrc-dev6-rr-packed- 
tree
Branched 19 revision(s).

real	5m40.896s
user	1m20.196s
sys	0m43.745s


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




More information about the bazaar mailing list