git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] cvsimport: introduce -L<imit> option to workaround memory leaks

From
Linus Torvalds <torvalds@osdl.org>
Date
May 26, 2006, 05:20 UTC
Message-ID
<Pine.LNX.4.64.0605252204590.5623@g5.osdl.org>
In-Reply-To
<46a038f90605251742p2435ae23k8bfbb98409a30c1c@mail.gmail.com>
On Fri, 26 May 2006, Martin Langhoff wrote:
> 
> Call me slow, but I am still running and rerunning that gentoo import. ;-)
I'm doing it too, just for fun.

Of course, since I'm doing this on a machine that basically has a laptop disk, the "just for fun" part is a bit sad. It's waiting for disk about 25% of the time ;/

And it's slow as hell. I really wish we could do better on the CVS import front.

> The current import has reached ~200K commits, and .git is 450MB, while
> the checked out tree is 230MB (680MB with .git). At this stage, git
> repack -a -d is too memory hungry.

I've got 2GB in that puppy, and "repack -a -d" is fine for me. I'm not quite up to 200k commits yet (I'm at 160k), but the repacking is certainly faster than the rest of the import.. Gaah.

It's "git-rev-list --objects" that is the memory sucker for me, the packing itself doesn't seem to be too bad.

The biggest cost seems to be git-write-tree, which is about 0.225 seconds for me on that tree on that machine. Which _should_ mean that we could do 4 commits a second, but that sure as hell ain't how it works out. It seems to do about 1.71 commits a second for me on that tree, which is pretty damn pitiful. Some cvs overhead, and probably some other git overhead too.

(That's a 2GHz Merom, so the fact that you get ~6k commits per hour on your 2GHz Opteron is about the same speed - I suspect you're also at least partly limited by disk, our numbers seem to match pretty well).

200k commits at 6k commits per hour is about a day and a half (plus the occasional packing load). Taking that long to import a CVS archive is horrible. But I guess it _is_ several years of work, and I guess you really have to do it only once, but still.

			Linus
Previous: Martin LanghoffNext: Jakub Narebski
Message 8 of 10 in “cvsimport: introduce -L<imit> option to workaround memory leaks”
  1. cvsimport: introduce -L<imit> option to workaround memory leaksMartin Langhoff, May 22, 2006
  2. Linus TorvaldsMay 23, 2006
  3. Martin Langhoff (CatalystIT)May 23, 2006
  4. Theodore TsoMay 23, 2006
  5. Linus TorvaldsMay 23, 2006
  6. Linus TorvaldsMay 23, 2006
  7. Martin LanghoffMay 26, 2006
  8. Linus TorvaldsMay 26, 2006
  9. Jakub NarebskiMay 26, 2006
  10. Martin LanghoffMay 26, 2006

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.