UseAdaptiveSizePolicy和其他jvm选项
JVM选项-XX:+ UseAdaptiveSizePolicy被定义为热点人机工程学的一部分,可以使用吞吐量或暂停时间优先级进行指定。
但是,我的问题是 – 将NewSize和SurvivorRatio等其他jvm选项与之一起提及是否正确? 这样做的确切影响是什么?
只是FYI, -XX:+UseAdaptiveSizePolicy
默认情况下,在任何最新版本的Sun JVM中都启用了 -XX:+UseAdaptiveSizePolicy
。
另外,我发现了一篇文章 :
避免麻烦 :
-XX:SurvivorRatio=
选项与JVM参数-XX:+UseAdaptiveSizePolicy
不兼容。 请根据您的情况使用其中任何一个。
我无法找到NewSize
的确定答案,但它似乎设置了初始年轻代的大小,而不是永久性的,所以它与UseAdaptiveSizePolicy
并不相互排斥。
但是,这里有一堆文章:
- http://download.oracle.com/javase/1.5.0/docs/guide/vm/gc-ergonomics.html
- http://www.oracle.com/technetwork/java/gc-tuning-5-138395.html
- http://developers.sun.com/mobility/midp/articles/garbagecollection2/
但是,在大多数情况下,如果您正在调整SurvivorRatio
则需要调整NewSize
和MaxNewSize
。
我对非标准选项(-X)组合的体验是它们在JVM版本和平台之间的行为略有不同。
如果您想确定哪一个是一组选项的结果,请尽可能使用jmap -heap
检查真实的JVM值,例如
检测到客户端编译 JVM版本是1.5.0_14-b03 使用线程局部对象分配。 Mark Sweep紧凑型GC 堆配置: 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) [...]