Javaヒープの初期サイズ(-Xms)と最大サイズ(-Xmx)には,必ず同じ値を指定してください。同じ設定でない場合,コピーガーベージコレクションの回数が増加するおそれがあります。
なお,この設定は,明示管理ヒープ機能を使用しない場合にも推奨の設定です。
- 補足:
- Javaヒープの初期サイズと最大サイズが異なる場合,各領域のサイズは,次のタイミングで変更されます。
- コピーガーベージコレクション終了時
New領域のサイズが動的に変更されます。
- フルガーベージコレクション終了時
Tenured領域とNew領域のサイズが動的に変更されます。
- New領域のサイズは,主にTenured領域のサイズと-XX:NewRatioオプションに指定した値によって決まります。
- 明示管理ヒープ機能によってフルガーベージコレクションの発生が抑止されると,Tenured領域のサイズが変更されるタイミングがなくなります。これに伴って,New領域のサイズも,ほぼ一定になります。
- このため,初期サイズよりも大きい最大サイズを定義していても,New領域が拡張されるタイミングがなくなり,初期サイズで指定したままのサイズになります。初期サイズで指定したNew領域が小さい場合,明示管理ヒープ機能を使用しない場合に比べて,コピーガーベージコレクションが多く発生するおそれがあります。