CMS GCについて

はここが大変わかりやすく勉強になりました。
http://cco.hatenablog.jp/entry/2014/12/01/162240

なにを勘違いしていたのか

上記のサイトを見たり、仕事で使っているサーバを参考にとりあえず以下の感じで、CMS GCを設定していました。

 -XX:+UseConcMarkSweepGC
 -XX:CMSInitiatingOccupancyFraction=40 

これでold領域が40%になればCMS GCが走ってくれる!

というのが勘違いでした。。。

実際は

上記の設定だと初めてold領域が40%に達したときのみCMS GCが走ります。。
その後は100%になるまでCMS GCが走らないことも。。

そうじゃなくて、毎回40%でCMS GCに動いて欲しい。。。><

解決策

-XX:+UseCMSInitiatingOccupancyOnlyこれを追加してあげればよかった!
これを設定するとCMS発生の起因をCMSInitiatingOccupancyFractionのみにするそうです。

無事毎回40%のタイミングでCMS GCが走るようになって幸せです。^^

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.