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

Re: gitk normal use on linux repo and severe memory pressure

From
Jeff King <peff@peff.net>
Date
May 25, 2011, 18:27 UTC
Message-ID
<20110525182734.GA26407@sigill.intra.peff.net>
In-Reply-To
<BANLkTinrj2AOCMMWazf2F4eKy7Sy56K0vg@mail.gmail.com>
On Wed, May 25, 2011 at 11:20:24AM -0400, Martin Langhoff wrote:
> An anecdotical report: Right today, I fired up gitk on a linux-2.6.39
> checkout to review some new patches. While discussing the patches with
> other developers on irc, my machine (arguably, RAM-constrained at 1GB)
> started to hit swap heavily.

Yeah, gitk on linux-2.6 tops out at around 1.6GB on my machine. Ouch. That's 6-7K per commit. In git.git, it's similar (7-8K per commit). For comparison, all of "git log --pretty=raw" for linux-2.6 is only about 180M, or ~0.7K per commit.

Obviously there is going to be some overhead with organizing the data, but that is really quite a lot.

> Are there efforts afoot to teach gitk to read in _some_ history and
> pause, continuing if the user scrolls down? Not sure if searches are
> done in-memory in gitk -- which probably complicates things.

Not that I know of. But it seems like there might be some room to optimize gitk's storage. I know absolutely nothing about how commits are stored now, though, so it's possible I'm completely wrong.

-Peff
Previous: Martin Langhoff
Message 4 of 4 in “gitk normal use on linux repo and severe memory pressure”
  1. Martin LanghoffMay 25, 2011
  2. Andreas SchwabMay 25, 2011
  3. Martin LanghoffMay 25, 2011
  4. Jeff KingMay 25, 2011

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.