Merge eats memory

John A Meinel john at arbash-meinel.com
Tue May 31 15:40:21 BST 2005


Michael Ellerman wrote:
> Hi guys,
> 
> I haven't had much time to look into this. Thanks Andrew for the pointer to 
> the ref count script, that's been useful.
> 
> It turns out I was versioning my .git directory in my bzr/git repos, which is 
> unnecessary and obviously going to cause me pain when I merge.
> 
> The memory usage is still ridiculously high though, so I think there's 
> something leaking in there.
> 
> michael at swarm1:~/kernels/bzr1$ du -sh .git/ .bzr/ .
> 200M    .git/
> 321M    .bzr/
> 756M    .
> 
> michael at swarm1:~/kernels/bzr1$ find . -type f | wc -l
> 102243
> michael at swarm1:~/kernels/bzr1$ find .bzr -type f | wc -l
> 51127
> michael at swarm1:~/kernels/bzr1$ find .git -type f | wc -l
> 33751
> 
> 
> michael at swarm1:~/kernels/bzr1$ bzr merge ../bzr2/ ./@1
> 
> Peak memory usage about 970 MB, takes about 79 minutes on a P4 2.8 GHz with 
> 512 MB RAM and 512 MB swap.
> 
> Logs and some graphs here: http://michael.ellerman.id.au/files/bzr
> 
> refs.log is the output (munged) from the countrefs.py running every 10 seconds 
> or so. I ctrl-c'ed that run as I got bored of my box being unusable. The last 
> entry looks like:
> 
> Refs	Class
> ----------------------------------------
> 157370	bzrlib.merge.SourceFile
> 157368	bzrlib.inventory.InventoryEntry
> 95615	bzrlib.changeset.ChangesetEntry
> 95614	bzrlib.changeset.ReplaceContents
> 93164	bzrlib.changeset.ChangeUnixPermissions
> 93164	bzrlib.changeset.FileCreate
> 134	bzrlib.commands.Command
> 48	exceptions.Exception
> 34	random.Random
> 27	threading._Verbose
> 
> 
> I haven't had a chance to look at where we might be holding those objects 
> though. Maybe tonight.
> 
> cheers
> 

Well, if I looked at the refs.log file correctly, it looks like you have
a whole lot of exceptions being generated. They seem to be warnings that
are caught somewhere, but it seems likely that the exceptions are
leaking memory.

We should probably look closely at some of the
bzrlib.inventory.InventoryEntry stuff. But I honestly don't know what
generated your refs.log file, so my understanding might be very wrong.

John
=:->
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 251 bytes
Desc: OpenPGP digital signature
Url : https://lists.ubuntu.com/archives/bazaar/attachments/20050531/c70d20ac/attachment.pgp 


More information about the bazaar mailing list