JDK-6524727 : GC ergonomics does not honor the minimum young gen size implied by a -Xms and NewRatio
The Version table provides details related to the release that this issue/RFE will be addressed.
Unresolved : Release in which this issue/RFE will be addressed. Resolved: Release in which this issue/RFE has been resolved. Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.
Using -Xms and NewRatio does not set the correct minimum size for
the young generation when GC ergonomics is being used. The minimum size
for the young generation is still set by NewSize which has not been
adjusted for -Xms.
The minimum size of the young gen needs to be explicitly set. The comment on
the workaround should say to set NewSize (not NewRatio).
Added a variable (_min_heap_byte_size) to hold the
minimum size of the heap and use it to set the
minimum size of the young generation.
The parallel collector uses NewSize as the minimum size of the
young generation and does not check the size implied by
-Xms and NewRatio. The fix is to check the value implied by
-Xms and NewRatio and use the larger between it and NewSize
if NewSize has not been explicitly set on the command line.
With the other collectors the minimum sizes
and the initial sizes of the generations are the same
and the initial size for the young generation is correctly
set according to -Xms and NewRatio where it needs to be.
Explicitly setting NewRatio or using -Xmn does the right thing.