4

最近の ParNew がなく、CMS-Initial-Mark フェーズが開始された場合、CMS-Initial-Mark フェーズが古い世代のオブジェクトをマークするのに時間がかかることを確認しました。

良い点は、ほとんどの場合、CMS-Initial-Mark フェーズの直前に ParNew (偶然か、JVM がこれを内部で行う可能性があります) が発生し、古い世代で同じ数のオブジェクトをマークするために、CMS の時間が短縮されることです。

この観察の背後にある理由を知りたいです。

注: CMS-Initial-Mark フェーズがストップ ザ ワールドであることを考慮すると、その期間を短縮するための最善の試みを行う必要があります。

4

1 に答える 1

7

Normally CMS initial mark piggyback on young collection. CMS can wait for young collection for some time (2 seconds default). If it is not happening, initial mark will scan all young space using single thread, this could be very time consuming.

Read http://blog.ragozin.info/2011/06/understanding-gc-pauses-in-jvm-hotspots_02.html for more details.

HotSpot option –XX:CMSWaitDuration=<delay in ms> controls how long CMS initial mark could be delayed to piggyback young collection.

于 2012-05-20T06:42:01.090 に答える