On Tue, 3 Apr 2007, Linus Torvalds wrote: > > and it uses 52s of CPU-time, and on my 4GB machine it actually started > doing IO and swapping, because git-index-pack grew to 4.8GB in size. Ahh. False alarm. The problem is actually largely a really stupid memory leak in the SHA1 collision checking (which wouldn't trigger on a normal pull, but obviously does trigger for every single object when testing!) This trivial patch fixes most of it. git-index-pack still uses too much memory, but it does a *lot* better. Junio, please get this into 1.5.1 (I *think* the SHA1 checking is new, but if it exists in 1.5.0 too, it obviously needs the same fix). It still grows, but it grew to just 287M in size now for the 170M kernel object: 41.59user 1.39system 0:43.64elapsed 0major+73552minor which is quite a lot better. Duh. Linus --- index-pack.c | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) diff --git a/index-pack.c b/index-pack.c index 6284fe3..3c768fb 100644 --- a/index-pack.c +++ b/index-pack.c @@ -358,6 +358,7 @@ static void sha1_object(const void *data, unsigned long size, if (size != has_size || type != has_type || memcmp(data, has_data, size) != 0) die("SHA1 COLLISION FOUND WITH %s !", sha1_to_hex(sha1)); + free(has_data); } } - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html