如果您查看文档(例如http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html),您会发现XX的默认值为8:SurvivorRatio。
如果你在没有明确设置SurvivorRation的情况下检查一个已经启动的jvm,你可以看到这个默认值:
jmap -heap <pid>
将输出
...
SurvivorRatio = 8
...
但是如果使用VisualGC检查S1 S0的最大大小,则可以看到使用了SurvivorRatio = 1。
如果使用-XX显式启动java程序,则图片会发生变化:SurvivorRatio = 8
那么为什么默认。没有使用的默认是非常恼人的。
有关于java性能调优的the BOOK:
-XX:SurvivorRatio=<n> should be used when you want to explicitly size survivor
spaces to manipulate object aging with the concurrent garbage collector, or to
manipulate object aging with the throughput garbage collector when adaptive sizing
is disabled using the command line option -XX:-UseAdaptiveSizePolicy.
所以除非你使用-XX:SurvivorRatio
,否则忽略-XX:-UseAdaptiveSizePolicy
。