CRR: 7032531: G1: enhance GC logging to include more accurate eden / survivor size transitions (S/XS)
Y. S. Ramakrishna
y.s.ramakrishna at oracle.com
Tue Jun 7 14:06:17 PDT 2011
On 06/07/11 13:24, Tony Printezis wrote:
> You're bringing a very good point, as always!
> Both the max eden and survivor sizes can potentially change at the end
> of each GC. I was going to send those resizing decision to the
> "ergonomic decisions" output (for which I recently opened a CR -
> 7050392). Including them here like the max heap size is a reasonably
> suggestion. Note, however, that the max heap size is actually a slightly
> different concept to the max eden / survivor sizes. The max heap size
> indicates that we have actually reserved that much space. The max eden /
> survivor sizes are instead a goal and we'll reserve that space on demand
> (and in some cases we might not be able to: imagine if suddenly the heap
> fills up with a humongous object). So I decided not to show those in a
> similar way as the max heap size.
OK, i see.
> Maybe I'm being too pedantic here?
Probably not; it's best to give less info (as you've decided to)
than give more and have the users confused as to what happened with
that space... may be :-)
FWIW, i think it's fine to provide that extra info in the ergo decisions
output, as you've chosen to,
> On 06/07/2011 03:31 PM, Y. S. Ramakrishna wrote:
>> Hi Tony -- high level question: Does it make sense in G1
>> to report the "capacity" of Eden/Survivor (or Eden+Survivor)
>> after a scavenge, or does that not make sense because
>> perhaps it's dynamically decided based on other factors
>> and so all that really matters is the capacity of the whole
>> heap (reported as 125 MB in your snippet below).
>> -- ramki
>> On 06/07/11 11:10, Tony Printezis wrote:
>>> Hi all,
>>> Could I have a couple of reviews for this change?
>>> This enhances the G1 +PrintGCDetails output to include how much space
>>> there is in the eden and survivor regions before / after a GC. Here's
>>> an example of the output:
>>> [Eden: 18M->0B Survivors: 1024K->2048K Heap: 27M(105M)->12M(125M)]
>>> It shows that the eden had 18MB before the GC and it's empty after it
>>> (as expected!), the survivors were 1MB before the GC and grew to 2MB
>>> after the GC, the used space in the heap fell from 27MB to 12MB, and
>>> finally the heap size grew from 105MB to 125MB.
>>> Note that, currently, the eden / survivor sizes that are reported are
>>> not very accurate. They are currently calculated as region_num *
>>> region_size. It'd be better if they were calculated as the used byte
>>> total in the eden and survivor regions. But this would require a fair
>>> amount of extra changes to do (I'd rather avoid iterating over them
>>> to calculate that). We'll do that change when we revamp the region
>>> lists that keep track of the eden / survivor regions (which is
>>> currently work-in-progress).
More information about the hotspot-gc-dev