Re: gc --aggressive

3 messages, 3 authors, 2016-06-15 · open the first message on its own page

Re: gc --aggressive

From: Junio C Hamano <hidden>
Date: 2016-06-15 22:53:37

Jeff King [off-list ref] writes:
...
I wonder where the memory is going. In theory, the memory consumption
for packing comes from keeping all of the objects for a given window in
memory (so we are looking for a delta for object X, and we have a window
of Y[0]..Y[$window] objects that we will consider). And for a
multi-threaded pack, that's per-thread.

How many cores are there on this box? Have you tried setting
pack.windowMemory to (12 / # of cores) or thereabouts?
Hrm, from the end-user's point of view, it appears that pack.windowMemory
ought to mean the total without having to worry about the division of it
across threads (which the implementation should be responsible for).
... But it seems lame that git _can't_
do a full repack on such a beefy machine. You don't want to do it all
the time, but you might want to do it at least once.
True.

Re: gc --aggressive

From: Jeff King <hidden>
Date: 2016-06-15 22:53:37

On Tue, Apr 17, 2012 at 03:17:28PM -0700, Junio C Hamano wrote:
quoted
How many cores are there on this box? Have you tried setting
pack.windowMemory to (12 / # of cores) or thereabouts?
Hrm, from the end-user's point of view, it appears that pack.windowMemory
ought to mean the total without having to worry about the division of it
across threads (which the implementation should be responsible for).
Agreed. I had to look in the code to check which it meant. I'm not sure
we can change it without regressing existing users, though.

-Peff

Re: gc --aggressive

From: Andreas Ericsson <hidden>
Date: 2016-06-15 22:53:37

On 04/18/2012 12:18 AM, Jeff King wrote:
On Tue, Apr 17, 2012 at 03:17:28PM -0700, Junio C Hamano wrote:
quoted
quoted
How many cores are there on this box? Have you tried setting
pack.windowMemory to (12 / # of cores) or thereabouts?
Hrm, from the end-user's point of view, it appears that pack.windowMemory
ought to mean the total without having to worry about the division of it
across threads (which the implementation should be responsible for).
Agreed. I had to look in the code to check which it meant. I'm not sure
we can change it without regressing existing users, though.
Introduce a new one.

core.maxmemoryusage = <something>, which acts as an upper bound in all
codepaths where we actually keep track.

-- 
Andreas Ericsson                   andreas.ericsson@op5.se
OP5 AB                             www.op5.se
Tel: +46 8-230225                  Fax: +46 8-230231

Considering the successes of the wars on alcohol, poverty, drugs and
terror, I think we should give some serious thought to declaring war
on peace.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help