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

Re: [PATCH 0/3] gitk: memory consumption improvements

From
Junio C Hamano <gitster@pobox.com>
Date
Nov 8, 2016, 21:37 UTC
Message-ID
<xmqqtwbhbql9.fsf@gitster.mtv.corp.google.com>
In-Reply-To
<de7cd593-0c10-4e93-1681-7e123504f5d5@jump-ing.de>
Markus Hitter <mah@jump-ing.de> writes:
Show 10 quoted lines
> List, Paul,
>
> after searching for a while on why Gitk sometimes consumes
> exorbitant amounts of memory I found a pair of minor issues and
> also a big one: the text widget comes with an unlimited undo
> manager, which is turned on be default. Considering that each line
> is inserted seperately, this piles up a huuuge undo stack ... for
> a read-only text widget. Simply turning off this undo manager
> saves about 95% of memory when viewing large commits (with tens of
> thousands of diff lines).

You made me laugh crazy hard while in a waiting room in a clinic yesterday with the cover letter; people around gave me a strange look but I couldn't help.

This is a single liner with the largest gain in the history of this project. Very well spotted.

Are all semi-modern Tcl/Tk in service have this -undo thing so that we can pass unconditionally to the text widget like the patch does?

If we had to do this conditionally, that robs the fun of "just adding 8 bytes to the source to reduce 1+GB memory consumption", but even if we had to go conditional, this is a great find.

Well done.
Previous: Jacob KellerNext: Markus Hitter
Message 6 of 9 in “gitk: memory consumption improvements”
  1. 0/3 gitk: memory consumption improvementsMarkus Hitter, Nov 7, 2016
  2. 1/3 gitk: turn off undo manager in the text widgetMarkus Hitter, Nov 7, 2016
  3. 2/3 gitk: remove closed file descriptors from $blobdifffdMarkus Hitter, Nov 7, 2016
  4. 3/3 gitk: clear array 'commitinfo' on reloadMarkus Hitter, Nov 7, 2016
  5. Jacob KellerNov 7, 2016
  6. Junio C HamanoNov 8, 2016
  7. Markus HitterNov 9, 2016
  8. Junio C HamanoNov 9, 2016
  9. Paul MackerrasDec 12, 2016

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.