Re: gitk: avoid obscene memory consumption
- From
Stefan Beller <sbeller@google.com>
- Date
- Nov 4, 2016, 22:45 UTC
- Message-ID
- <CAGZ79kbavzGJ2sAcz5heg+BO+tZ=TgtrhxMH1-kqeJUpNNavyw@mail.gmail.com>
- In-Reply-To
- <47c374cf-e6b9-8cd3-ee0d-d877e9e96a62@jump-ing.de>
On Fri, Nov 4, 2016 at 12:49 PM, Markus Hitter <mah@jump-ing.de> wrote:
> > Hello all,
+cc Paul Mackeras, who maintains gitk.
Show 6 quoted lines
> > after Gitk brought my shabby development machine (Core2Duo, 4 GB RAM, Ubuntu 16.10, no swap to save the SSD) to its knees once more than I'm comfortable with, I decided to investigate this issue. > > Result of this investigation is, my Git repo has a commit with a diff of some 365'000 lines and Gitk tries to display all of them, consuming more than 1.5 GB of memory. > > The solution is to cut off diffs at 50'000 lines for the display. This consumes about 350 MB RAM, still a lot. These first 50'000 lines are shown, followed by a copyable message on how to view the full diff on the command line. Diffs shorter than this limit are displayed as before.
Bikeshedding: I'd argue to even lower the number to 5-10k lines.
> > To test the waters whether such a change is welcome, here's the patch as I currently use it. If this patch makes sense I'll happily apply change requests and bring it more in line with Git's patch submission expectations.
I have never contributed to gitk myself, which is hosted at git://ozlabs.org/~paulus/gitk though I'd expect these guide lines would roughly apply: https://github.com/git/git/blob/master/Documentation/SubmittingPatches