JVMの実用的なパラメータをどのように構成するか
よく使用されるJVMの実用パラメータの設定のためのコマンドラインパラメータは次のとおりです。
- ネイティブに日本語で言い換える:ヒープメモリのサイズのの設定:
- -Xms:初期ヒープ領域を設定
-Xmx:最大ヒープ領域を設定 - java -Xms512m -Xmx1024m MyProgram
- スレッドのスタックサイズの設定:
- -Xss:スレッドスタックサイズのセット
- java -Xss1m MyProgram
- メモリー領域(JDK8以前はPermGen、JDK8以降はMetaspace)のサイズを設定します:
- -XX:PermSize=は初期のパーマネント世代の大きさを設定します。
-XX:MaxPermSize=はパーマネント世代の最大大きさを設定します(JDK8以前のバージョン)。
-XX:MetaspaceSize=は初期のメタデータ領域の大きさを設定します(JDK8以降のバージョン)。
-XX:MaxMetaspaceSize=はメタデータ領域の最大大きさを設定します(JDK8以降のバージョン)。 - 例:java -Xms128m -Xmx256m MyProgram
- ガベージコレクタのセットアップ
- シリアルGCを使用する:-XX:+UseSerialGC
- java -XX:+UseParallelGC マイプログラム
- GCログの出力先を設定します。
- -verbose:gc:GCログを出力
-Xloggc::GCログを指定ファイルに書き込む - ネイティブに日本語に言い換える:MyProgramを起動する時はGCのログを記録する(gc.log)ためにGCの詳細を出力する(java -verbose:gc -Xloggc:gc.log)
- 其他常用参数:
- -XX:+PrintGCDetails:GCの詳しい情報を印刷する
-XX:+PrintGCDateStamps:GCのタイムスタンプを印刷する
-XX:+UseCompressedOops:ポインタ圧縮を有効にする(64ビットJVMでのみ利用可能) - java -XX:+PrintGCDetails -XX:+UseCompressedOops MyProgram
具体的なニーズに応じて適切なパラメータを選択して、一般的なJVM実用パラメータの設定方法を次に示します。