ParNew和CMS初始相关

sky*_*sky 4 garbage-collection jvm

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

好的部分是最让我发现ParNew时代(可能是偶然或JVM在内部这一点)正好出现CMS-初始标记阶段之前,然后标记相同数量的老一代对象时,CMS花费较少的时间.

想知道这一观察背后的推理.

注意:考虑到CMS-Initial-Mark阶段是停止世界,应该尽最大努力减少其持续时间.

Ale*_*zin 7

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

有关更多详细信息,请参阅http://blog.ragozin.info/2011/06/understanding-gc-pauses-in-jvm-hotspots_02.html.

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