7.7.2 Javaヒープ内のTenured領域に格納する方法
New領域で管理するオブジェクトの最大の年齢は,-XX:MaxTenuringThreshold=<value>オプションで指定できます。例えば,「-XX:MaxTenuringThreshold=2」を指定しておけば,3回目のCopyGCの対象になったオブジェクトは,すべてTenured領域に移動します。
この方法を使用すると,CopyGCの対象になるオブジェクトが少なくなり,実行時間が短縮できます。ただし,多くのオブジェクトがTenured領域に移動するため,Tenured領域がいっぱいになった段階でFullGCが定期的に発生します。システムを安定して動作させるためには,システムに掛かる負荷が低いときなどに,FullGCを強制的に発生させてください。FullGCを強制的に発生させるには,次の方法があります。
-
プログラム内でSystem.gc()メソッドを呼び出す
-
javagcコマンドを実行する
javagcコマンドの詳細については,マニュアル「アプリケーションサーバ リファレンス コマンド編」の「javagc(GCの強制発生)」を参照してください。