コードにメモリリークがある場合、それらのフラグは役に立ちません。
仮想マシンのガベージコレクションのチューニングによると:
アプリケーションにかなり厳しい一時停止時間の要件がない限り、最初にアプリケーションを実行し、VMがコレクターを選択できるようにします。必要に応じて、ヒープサイズを調整してパフォーマンスを向上させます。それでもパフォーマンスが目標を達成できない場合は、コレクターを選択するための開始点として次のガイドラインを使用してください。
アプリケーションに小さなデータセット(最大約100MB)がある場合は、
- でシリアルコレクターを選択します
-XX:+UseSerialGC
。
アプリケーションが単一のプロセッサで実行され、一時停止時間の要件がない場合は、
- VMにコレクターを選択させる、または
- でシリアルコレクターを選択します
-XX:+UseSerialGC
。
(a)アプリケーションのピークパフォーマンスが最優先事項であり、(b)一時停止時間の要件がないか、1秒以上の一時停止が許容される場合は、
- VMにコレクターを選択させる、または
- で並列コレクターを選択し
-XX:+UseParallelGC
、(オプションで)で並列圧縮を有効にし-XX:+UseParallelOldGC
ます。
応答時間が全体的なスループットよりも重要であり、ガベージコレクションの一時停止を約1秒より短くする必要がある場合は、
- で並行コレクターを選択します
-XX:+UseConcMarkSweepGC
。1つまたは2つのプロセッサしか使用できない場合は、以下で説明するインクリメンタルモードの使用を検討してください。