インクリメンタルGCのところだけ

http://d.hatena.ne.jp/tksmd/20100929#p1

インクリメンタルGCにXincgcってかいてるけど、これsunVMはアルゴリズム変更になってから実態はコンカレントGCになってるはず。

なんで従来のアルゴリズムのXincgcを期待するときはtraingcのみで。incgcはXオプションなのでインクリメンタルに(近い)動作することを期待するというレベル。XX指定は細かいこともできるけど、完全に環境依存で他の環境では使えないことが多いオプションだというのにも注意ですね。


オプションはVMの種類以外にもOSによっても変わるので、手元のsunのVM環境で大丈夫だと思っていても、たとえばサーバーでWebSphere使っていてIBMVMになってしまったとかだとかなり変わると思うので要注意。

そういう意味では手元でsunVM+Windowsで確認できているのならサーバーをWindows Server + SunVMというのが最も失敗が少ないと思う。GCのログとかがそのまま使えるとかもありますしね。


昔よくGCは細かく見てきたことが多かったけど、G1GCの正式版でたらみんな何も考えずに移行してよいGCアルゴリズムだと思う。それくらい驚きの安定度だった。世代別+コンカレントは現時点ではベストだけど、メモリ調整がシビアなので難しい。一方でG1GCは無設定でほぼ調整済みの現行のGC並みかそれ以上の結果が出ることも多かった。新世代だけで回ってるときは世代別早いけどね。