tags:

views:

52

answers:

2

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 question is - is it right to have the other jvm options like NewSize and SurvivorRatio mentioned along with it?. What exactly is the impact of doing that?

+1  A: 

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.

The Alchemist
A: 

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)
[...]
antispam