Bazaar 1.6 released - some benchmarks.

David Ingamells david.ingamells at mapscape.eu
Wed Aug 27 14:11:15 BST 2008


I have to say that my first experience with bzr 1.6 performance is very 
disappointing. I observe times more that 300% slower than bzr version 
1.5 (which itself showed no improvements over bzr 1.2). Checkout 
--lightweight is, in some cases, even worse.

Working with a repos with only a few revisions (33) but LOTS of files:

cmsadmin at mscvs01:/home/CmsRoot/repos/BSW/12.1$ bzr info
Repository branch (format: pack-0.92)

I timed a bzr+ssh:// branch with versions 1.2, 1.5 and 1.6. Both source 
and destination disks were local to their machines.

bzr_1.2:
=====
david.ingamells at msdes002: time bzr branch 
bzr+ssh://mscvs01/home/CmsRoot/repos/BSW/12.1 branch_1.2
Branched 33 
revision(s).                                                                                                                                                          


real    2m45.985s
user    1m14.725s
sys     0m55.023s

bzr 1.5:
=====
david.ingamells at msdes002: time /data/id/bin/bzr branch 
bzr+ssh://mscvs01/home/CmsRoot/repos/BSW/12.1 branch_1.5
Branched 33 
revision(s).                                                                                                                                                          


real    2m48.375s
user    1m13.581s
sys     0m56.372s


bzr 1.6:
=====
david.ingamells at msdes002: time bzr branch 
bzr+ssh://mscvs01/home/CmsRoot/repos/BSW/12.1 branch_1.6
Branched 33 
revision(s).                                                                                                                                                          


real    10m31.409s
user    5m2.215s
sys     5m16.720s

bzr 1.6 stacked
==========
david.ingamells at msdes002: time bzr branch --stacked 
bzr+ssh://mscvs01/home/CmsRoot/repos/BSW/12.1 branch_1.6_stack
using <bzrlib.repofmt.pack_repo.RepositoryFormatKnitPack5 object at 
0x876decc> for stacking
Created new stacked branch referring to 
bzr+ssh://mscvs01/home/CmsRoot/repos/BSW/12.1/.                                                                                           


real    17m21.220s
user    8m12.383s
sys     8m56.226s

Similar timings with the file:// protocol and checkout --lightweight gave:

pack-0.92
                   branch bzr+ssh://   branch file://   checkout 
--lightweight bzr+ssh://
                   =================   ==============   
=================================
bzr 1.2            2m45.985s           1m6.795s         3m0.301s
bzr 1.5            2m48.375s           1m3.309s         3m7.716s
bzr 1.6            10m31.409s          1m33.950s        17m44.029s
bzr 1.6 stacked    17m21.220s          1m20.099s              

With both protocols bzr 1.6 is for my repositories a retrograde release 
as far as branch performance is concerned.

I repeated the same tests with another repository having lots of history 
(3644 revisions) but fewer files and with dirstate-tags format:

dirstate-tags
                   branch bzr+ssh://   branch file://   checkout 
--lightweight bzr+ssh://
                   =================   ==============   
=================================
bzr 1.2            1m0.376s            1m1.186s         0m37.084s
bzr 1.5            1m52.103s           1m58.407s        0m37.400s
bzr 1.6            4m8.584s            2m19.070s        1m4.605s
bzr 1.6 stacked    1m11.704s           1m2.370s        

The branch sizes are:

$ du -sk *
513384  branch_1.2
513380  branch_1.5
513380  branch_1.6
296960  branch_1.6_stack
285328  toto_1.2
285324  toto_1.5
244948  toto_1.6
97140   toto_1.6-stack


Given the performance of bzr 1.6 with pack-0.92 I feel very cynical 
about the advice produced when I ran the bzr 1.6 branch command on the 
dirstate-tags repos - it was so important it had to be repeated! (with 
the --stacked option there were 5 messages such produced).

Format <RepositoryFormatKnit1> for 
chroot-140730668:///home/CmsRoot/repos/CVTOOL/.bzr/ is deprecated - 
please use 'bzr upgrade' to get better performance
Format <RepositoryFormatKnit1> for 
bzr+ssh://mscvs01/home/CmsRoot/repos/CVTOOL/.bzr/ is deprecated - please 
use 'bzr upgrade' to get better performance

 From my measurements "better performance"is only notable by its 
absence. Admittedly it looks like 1.6 branch --stacked will be faster 
provided there is lots of history in the repos that can be left behind. 
Also --stacked with such a repos saves lots of disk space.

However the bottom line is that version 1.6's branch with pack-0.92 and 
bzr+ssh:// protocol is about 375% slower than in version 1.5 and 382% 
slower than version 1.2. With file:// protocol the figure is 221% 
compared to bzr 1.5.

I ran these tests with lots of hope for improvements, and really wanted 
to be able to send good news. I would love it if someone can point out a 
stupid error I've made which will turn the figures around. Maybe I've 
misunderstood the intentions of stacked branches. I have shown here that 
they do save lots of disk space, but I had also expected performance 
similar to bzr 1.5's checkout --lightweight. I have shown that branch 
--stacked and checkout --lightweight are similar in version 1.6 (which 
makes sense), but why are all the timings much slower than their 
equivalents in bzr 1.5???



John Arbash Meinel wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Finally, the long awaited bzr 1.6 has been released.
>
>   




More information about the bazaar mailing list