JVM选项-XX:+ UseAdaptiveSizePolicy被定义为热点人体工程学的一部分,可以使用吞吐量或暂停时间优先级来指定。
但是,我的问题是 - 将NewSize和SurvivorRatio等其他jvm选项与之一起提及是否正确?这样做的确切影响是什么?
答案 0 :(得分:15)
仅限FYI,-XX:+UseAdaptiveSizePolicy
is enabled by default在任何最新版本的Sun JVM中。
另外,我找到了an article:
避免麻烦:
-XX:SurvivorRatio=
选项与JVM不兼容 参数-XX:+UseAdaptiveSizePolicy
。 请根据使用任何一个 你的情况。
我无法找到NewSize
的明确答案,但它似乎设置了初始年轻代的大小,而不是永久性的,所以它与UseAdaptiveSizePolicy
并不相互排斥
然而,这里有一堆文章:
但是,在大多数情况下,如果您正在调整SurvivorRatio
,则需要调整NewSize
和MaxNewSize
。
答案 1 :(得分:4)
我对非标准选项(-X)组合的体验是它们在JVM版本和平台之间的行为略有不同。
如果您想确定哪一个是一组选项的结果,请尽可能使用jmap -heap
检查真实的JVM值,例如
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) [...]