This page summarizes the performance improvements in Bazaar 0.9 versus Bazaar 0.8.2.
Add files time
This test was performed in a Linux Kernel tree, with 21297 files and directories.
Bazaar 0.9 is approximately six times faster at adding everything in the tree than Bazaar 0.8.2.
This test was performed for the time it takes to branch a bzr.dev tree at revno 1865 (total of 6283 revisions) across a remote connection with a bandwidth of 160KB/s and a ping time of 35ms.
You can see that the time to branch over http has been improved by more than two times. And is now only 50% slower than the time to dowload all of the data using rsync. The time for sftp has also been improved, though not as much as http.
This is the time it takes to do a bzr pull from revno 1800 to 1865 (this is 390 total revisions, including merges). This was over the same network connection (160KB/s bandwidth, 35ms latency).
This shows that pulling over http is also almost two times faster with Bazaar 0.9 versus 0.8. It also shows that bzr pull can be faster than using rsync when trying to update a branch. Mostly we get this ability because we know what files need to be updated, rather than having to check every file.
This is the time it takes to do a bzr pull from revno 1860 to 1865 (26 total revisions). This was over the same network connection (160KB/s bandwidth, 35ms latency).
Now you can see where having more knowledge about what files have change really starts to pay off. Bazaar 0.8.2 was already quite fast here, so the biggest improvement is actually for Bazaar 0.9 using sftp. Still, all methods are faster than doing a full rsync at this point.
This is the time it takes to do a bzr pull from revno 1500 to 1865 (3779 total revisions).
Performance is very similar to the bzr branch. Greatly improved (especially for http), but not quite as fast as rsync. However, this is also updating a branch with more revisions than it currently has (revno 1500 has 2504 revisions).
The total memory consumption was also improved for Bazaar 0.9. This plot shows the memory consumption for different versions of Bazaar.
The graph is the memory consumption over time when doing a bzr branch of a samba repository (over sftp). The repository that was being branched was a samba repository with 9134 revisions, and a total size of 121MB. The x-axis is time in seconds, and the y-axis is the total memory consumption in megabytes.The red line is Bazaar 0.8.2 using sftp, and the magenta line is Bazaar 0.8.2 with http. The blue line is Bazaar 0.9 with sftp, and green is Bazaar 0.9 over http.
Memory consumption has dropped to less that half of what it used to be. Bazaar 0.9 with http consumes more memory that sftp because of how it buffers reads before returning data. It should be possible to return data earlier, which would decrease memory consumption even more. It is also possible to see the improved branching speed, especially over http. The increase is not as dramatic, because the branch was done over the local network with very low latency (<1ms).