MaxTenuringThreshold has a new ergonomic value???

Kirk Pepperdine kirk at kodewerk.com
Tue Sep 3 07:03:33 PDT 2013


Hi Thomas,

Thanks for the response. And, 2011.... interesting. I've found that monitoring activity in survivor spaces to be exceptionally important but unfortunately it's rare that it's logged (if GC is logged at all) and when it does it breaks every tool 'cept the one I authored. So, I've really not seen 6 show up in a log in the wild, 'till recently. And I didn't question it until this week.

The change is actually a good one as it leaves more time for things to die in young. In fact, I'd leave it at 15 and roll back based on survivor occupancy after collection thresholds. I should add that I'm questioning the 50% threshold as I'm thinking that 90% or better is just as good if not better.

Regards,
Kirk

On 2013-09-03, at 9:24 AM, Thomas Schatzl <thomas.schatzl at oracle.com> wrote:

> Hi,
> 
> On Mon, 2013-09-02 at 11:58 +0200, Kirk Pepperdine wrote:
>> Hi,
>> 
>> Where does ergonomics calculate MaxTenuringhreshold for ParNew? It seems
>> that I missed the memo that the default ergonomics setting for this
>> flag has drifted from 4 to 6? Is this now the case?
> 
> arguments.cpp, Arguments::set_cms_and_parnew_gc_flags():
> 
> 1218:   intx   tenuring_default = (intx)6;
> [...]
> 1286:  // Unless explicitly requested otherwise, definitely
> 1287:  // promote all objects surviving "tenuring_default" scavenges.
> 1288:  if (FLAG_IS_DEFAULT(MaxTenuringThreshold) &&
> 1289:      FLAG_IS_DEFAULT(SurvivorRatio)) {
> 1290:    FLAG_SET_ERGO(uintx, MaxTenuringThreshold, tenuring_default);
> 1291:  }
> 
> 
> Note that the most recent change in line 1218 of that file dates back to
> March 2011.
> 
> I do not know the rationale for this change.
> 
> The RFR does not give additional details:
> http://mail.openjdk.java.net/pipermail/hotspot-gc-dev/2011-March/002384.html
> 
> Hth,
> Thomas
> 



More information about the hotspot-runtime-dev mailing list