For debugging purposes it would be good to have a way of disabling all ergonomics decisions in the GC code.
On the G1 dev mailing list the UseAdaptiveSize policy was discussed in a thread in August 2011. Here is a comment from Ramki that nicely summarizes the need for this CR:
Think of "size" as "Value (or size) of a tunable GC parameter", not just "size of a space". :-) As Jon said,
the name is a bit of a historical oddity, and I agree that it is a tad confusing; we could deprecate it
in favour of a less confusing "UseGCErgonomics" or such, but i think we agree that that's basically
what the intent of UseAdaptiveSizePolicy is today.
One related note though. I believe John Coomes is working on Vengerov's analytical policy,
and so just a single UseGCErgonomics boolean switch may not cut it in the future if we were to support
several choices of ergonomics policies. Rather one might (also?) need something like -XX:GCErgonomics=AnalyticalPolicy or XX:GCErgonomics=GradientDescentPolicy
-XX:GCErgonomics=NoPolicy, or whatever, i.e. the use of named policies that you turn on explicitly, with
one of them being the default. The -XX:+/-UseGCErgonomics might still be used as a master switch to
turn off all ergonomic auto-tuning.
On the G1 dev mailing list the UseAdaptiveSize policy was discussed in a thread in August 2011. Here is a comment from Ramki that nicely summarizes the need for this CR:
Think of "size" as "Value (or size) of a tunable GC parameter", not just "size of a space". :-) As Jon said,
the name is a bit of a historical oddity, and I agree that it is a tad confusing; we could deprecate it
in favour of a less confusing "UseGCErgonomics" or such, but i think we agree that that's basically
what the intent of UseAdaptiveSizePolicy is today.
One related note though. I believe John Coomes is working on Vengerov's analytical policy,
and so just a single UseGCErgonomics boolean switch may not cut it in the future if we were to support
several choices of ergonomics policies. Rather one might (also?) need something like -XX:GCErgonomics=AnalyticalPolicy or XX:GCErgonomics=GradientDescentPolicy
-XX:GCErgonomics=NoPolicy, or whatever, i.e. the use of named policies that you turn on explicitly, with
one of them being the default. The -XX:+/-UseGCErgonomics might still be used as a master switch to
turn off all ergonomic auto-tuning.