ParNew和CMS初始相关

时间:2012-05-19 23:02:35

标签: garbage-collection jvm

我观察到,当没有最近的ParNew,然后如果CMS-Initial-Mark阶段启动时,CMS-Initial-Mark阶段需要更长的时间来标记旧一代的对象。

好的部分是大多数时候我发现ParNew(可能偶然或者JVM在内部执行此操作)恰好在CMS-Initial-Mark阶段之前发生,然后在旧一代中标记相同数量的对象,CMS需要更少的时间。

想知道这一观察背后的原因。

注意:考虑到CMS-Initial-Mark阶段是世界末日,应尽最大努力缩短其持续时间。

1 个答案:

答案 0 :(得分:6)

正常情况下CMS初始标记搭载年轻的收藏品。 CMS可以等待一段时间的年轻收集(默认为2秒)。如果没有发生,初始标记将使用单线程扫描所有年轻空间,这可能非常耗时。

阅读http://blog.ragozin.info/2011/06/understanding-gc-pauses-in-jvm-hotspots_02.html了解详情。

HotSpot选项-XX:CMSWaitDuration =<以ms为单位的延迟>控制CMS初始标记可以延迟到背负年轻集合的时间。