久々の記事。JavaWorldの時に学んだ、ちょっと盛り上げ調で書いてみました。
測定データについてはもっと色々書きたかったのですが、Web上の記事と言う事で控えめに。
Sun VM のコンカレント GC って、どのタイミングで開始するの?JRockit の世代別コンカレント GC の場合は、デフォルトでは java heap の空き容量が全体の 12% をわったときに開始されるのですが。
これはナイスチューニング資料ですね。私のブログで宣伝したいと思います!
ConcurrentSweep時に新たに追加されたオブジェクトはどうなるのですか?<br>マークされた状態で追加される、とかでないとGCの対象になってしまうと思いますが、、、。
> bucchiyさん <br>ご想像のとおり、マークされた状態で追加されます。
なるほど、なるほど。ありがとございます。勉強になります。 <br>うーん、だとすると新たな疑問が、、、。 <br>なぜConcurrent Markフェーズでも同じように新規オブジェクトをマークした状態で追加しないのでしょうか??それができれば、Remarkフェーズで”新らたに追加されたオブジェクトの参照をチェックし、マーク漏れをなくす”必要はなくなるのではないですか??
Sun VM のコンカレント GC って、どのタイミングで開始するの?JRockit の世代別コンカレント GC の場合は、デフォルトでは java heap の空き容量が全体の 12% をわったときに開始されるのですが。
これはナイスチューニング資料ですね。私のブログで宣伝したいと思います!
ConcurrentSweep時に新たに追加されたオブジェクトはどうなるのですか?<br>マークされた状態で追加される、とかでないとGCの対象になってしまうと思いますが、、、。
> bucchiyさん <br>ご想像のとおり、マークされた状態で追加されます。
なるほど、なるほど。ありがとございます。勉強になります。 <br>うーん、だとすると新たな疑問が、、、。 <br>なぜConcurrent Markフェーズでも同じように新規オブジェクトをマークした状態で追加しないのでしょうか??それができれば、Remarkフェーズで”新らたに追加されたオブジェクトの参照をチェックし、マーク漏れをなくす”必要はなくなるのではないですか??