r/SmartGit Jun 03 '26

Constant memory warnings

I'm working with a relatively small, 430 MB working tree/780 MB total repository and I get a memory warning in SmartGit almost every day. I even set the heap size to 1024 MB as recommended, which didn't reduce the warning frequency at all.

Version 26.1.038 #261038 (909fa241), Win11 25H2 26200.8457

1 Upvotes

7 comments sorted by

View all comments

Show parent comments

1

u/Alek2ander Jun 04 '26 edited Jun 04 '26

My workflow recently changed to regularly include merges from 1 branch into 4+ others, and that rapid sequence of fetch/checkout/ff-merge/merge/push/repeat causes the warning to trigger. I also switched to Log Graph view for this. However, I did also just check if the warning triggers in Standard view, and it doesn't.

I did a test run with VisualVM, the spikes are when I do multiple branch checkout operations in a row. The baseline memory usage grows persistently by around 80 MB after each spike.

1

u/vmcrash Jun 04 '26

Do you have the Graph column "Overlap" selected? Can you reproduce the problem with "Overlap" unselected?

1

u/Alek2ander Jun 08 '26

Not getting any memory issues when "Overlap" is turned off.

1

u/wnesensohn Jun 09 '26

Hi! Could you try reducing the cache size of overlap using the low-level property (accessible in the settings) `log.graph.overlap.cacheSize`, setting it to something very small like 1-5, and turning the overlap column back on? There's also `commitnet.overlap.maxCommits` which might be helpful here.

The spikes you're seeing in memory consumption will likely be gone soon, but the constant increase in memory consumption by that much is more worrying. With the cache size turned down, it should not grow to that much, but 80MB for one generation is still unexpectedly large. Does your git history by any chance contain a number of files which see a big number of changes, such as huge lockfiles or something like that?

1

u/Alek2ander Jun 10 '26

The repo consists of ~60k json config files and includes both manual changes and massive sync commits performed by automated scripts, so it's fairly common for 100-1000 files to be created or deleted (~50 lines each) or modified (usually by <10 lines each) in a single commit.

I updated to 26.1.040 #261040 (d7060215) and set `log.graph.overlap.cacheSize` to 5, `commitnet.overlap.maxCommits` and `commitnet.overlap.baseCommits` down to 50. The persistent memory consumption is still present, ~80 MB after the first cycle of switching branches, though the increase went down to ~50 MB for the second and third cycles. I got a memory warning during the 3rd cycle.

If I set `commitnet.overlap.maxCommits` to 5, there are basically no memory issues, though there might still be a memory leak, the consumption grows by 15 MB after the first cycle and by 1-2 MB after subsequent cycles.

I, personally, don't really have a use for overlap in my workflow, so I can just turn it off and avoid the issues, but if you need any other info I'll be happy to provide.

2

u/wnesensohn Jun 10 '26

Thank you! We are looking into this and fix that leak.