tech-repository archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: git copies of cvs modules available



Hi Thor,

On Fri, Nov 6, 2009 at 8:27 PM, Thor Lancelot Simon <tls%panix.com@localhost> 
wrote:
> Any software that suddenly consumes gigabytes of
> RAM because someone was so foolish as to use a particular network
> transport
>
I've been digging in GIT sources today, and actually, it is more
clever than you might think. Most of the memory you are seeing
"consumed" is in fact pack mmap()'ed, but munmap()'ed lazily (ie. when
a subsequent allocation fails). So as long as there is memory to be
used, it uses it to store pack. Yes, it might definitively not have
been designed to run in parallel with other services, but that should
be tunable.

For testing, I used a modified version of pack-objects, which is only
traversing the commit list. On the pkgsrc tree, that operations
consumes ~280MB, with ~150MB of mmap()'ed pack, 16MB of object hash
(for 1182595 objects), 30MB for 623601 commit objects, 17MB for 558994
tree objects. That live about 80MB used $ididntfigureoutwhereyet.

Still digging,
 - Arnaud


Home | Main Index | Thread Index | Old Index