The JVM option -XX:+UseAdaptiveSizePolicy is defined as part of the hotspot ergonomics and can be specified with throughput or the pause time priority.
However, my q
My experience with combinations of non-standard options (-X) is that they behave slightly different among JVM versions and platforms.
If you want to be really sure about which is the result of a set of options, check the real JVM values with jmap -heap
if possible, e.g.
Client compiler detected. JVM version is 1.5.0_14-b03 using thread-local object allocation. Mark Sweep Compact GC Heap Configuration: MinHeapFreeRatio = 40 MaxHeapFreeRatio = 70 MaxHeapSize = 209715200 (200.0MB) NewSize = 2228224 (2.125MB) MaxNewSize = 4294901760 (4095.9375MB) OldSize = 1441792 (1.375MB) NewRatio = 8 SurvivorRatio = 32 PermSize = 8388608 (8.0MB) MaxPermSize = 134217728 (128.0MB) [...]
Just FYI, -XX:+UseAdaptiveSizePolicy
is enabled by default in any recent version of the Sun JVM.
Also, I found an article:
Avoid trouble:
-XX:SurvivorRatio=
option is incompatible with the JVM parameter-XX:+UseAdaptiveSizePolicy
. Please use either one according to your situation.
I couldn't find a definitive answer for NewSize
, but it appears it sets the initial young generation size, not permanent, so it's not mutually exclusive with UseAdaptiveSizePolicy
.
However, here's a bunch of articles:
In most cases, however, if you're tuning SurvivorRatio
will want to tune NewSize
and MaxNewSize
.