よく忘れるので、自分用のメモとして記録しておきます。
Java のヒープサイズは、JVM 起動時に -Xms
(初期サイズ)と -Xmx
(最大サイズ)オプションを使って設定できます。
java -Xms512m -Xmx2g -jar yourapp.jar
-
-Xms512m
:初期ヒープサイズを 512MB に設定 -
-Xmx2g
:最大ヒープサイズを 2GB に設定
単位の指定には以下の文字を使用します:
-
k
またはK
:キロバイト -
m
またはM
:メガバイト -
g
またはG
:ギガバイト
設定方法としては、アプリケーションが必要とするヒープ容量をあらかじめ見積もり、初期サイズと最大サイズの両方に同じ値を指定するケースが多いと思います(例:-Xms4096m -Xmx4096m
)。
JVM は通常、-Xms
で指定されたサイズからヒープを開始し、必要に応じて -Xmx
の値まで拡張していきます。初期サイズと最大サイズを同じ値にしておくことで、ヒープを動的に拡張するかどうかを判断する処理が不要になり、ガーベジコレクションの効率が少し向上することがあります。
参考