History operations are slow (Re: 'bzr branch -r -XXX foo bar' slow for long histories)

John Arbash Meinel john at arbash-meinel.com
Mon Mar 17 14:56:08 GMT 2008


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

Teemu Likonen wrote:
> John Arbash Meinel wrote:
> 
>> I've been playing around with the emacs repo a bit. And I found that
>> doing:
>>
>> bzr branch -r -100 trunk test
>>
>> Is actually pretty slow.
> 
> I've also been playing with bzr and emacs repository. Many history
> operations seem very slow but "bzr missing" is the worst:
> 
> 
> $ time bzr branch -r -2 trunk test
> [...]
> 
> real    2m8.822s
> user    1m59.767s
> sys     0m2.828s
> 
> $ cd test
> $ time bzr missing ../trunk
> You are missing 1 revision(s):
> [...]
> 
> real    15m52.620s
> user    15m4.769s
> sys     0m11.813s
> 
> 
> Yes, almost 16 minutes.

I believe 'bzr missing' is doing some sort of "set(ancestry_1) -
set(ancestry_2)". It is one of those commands which we would like to
switch over to "find_difference()".

The numbers also suggest that missing might not be locking the
repository for the whole time, so it is having to go back to disk.
Alternatively it is using a function which has to grab a new Graph
object, so the data is loaded into memory, but is still bisecting all of
the parents, rather than re-using the CachingParentsProvider.

My iter_history patch would probably fix up that case.

John
=:->

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

iD8DBQFH3oaIJdeBCYSNAAMRAg5uAJ49o4rd2cvUTHX13DmG8tnenXTIxgCbByCE
A1fDyDRibFun8c1W47dHEEM=
=qvEF
-----END PGP SIGNATURE-----



More information about the bazaar mailing list