-XX:HitachiJITCompileMaxMemorySize(JITコンパイル時の確保メモリ上限値指定オプション)
形式
- -XX:HitachiJITCompileMaxMemorySize=<整数値>
説明
- JITコンパイル時に確保するメモリが,<整数値>で指定した上限値を超えた場合に,日立JavaVMログファイルにログを出力するとともに,JITコンパイルを抑制します。
- JITコンパイル処理の対象となっていたJavaメソッドは,以後,インタプリタでのみ実行されるようになります。
- JITコンパイルが抑制された場合でも,JavaVMは強制終了せず,処理を続行します。
- <整数値>に0を指定した場合は,JITコンパイル時に確保するメモリは上限値で制限されません。
- なお,JITコンパイルはJavaVMの内部スレッド(JITコンパイラスレッド)で実行されます。JITコンパイラスレッドは2つ存在しており,このオプションで指定した上限値をJITコンパイラスレッドの個数2で割った値が,ひとつのJITコンパイラスレッドに対する上限値となります。
- デフォルト値
- -XX:HitachiJITCompileMaxMemorySize=0
引数
- <整数値>
- JITコンパイル時に確保するメモリの上限値を指定します。0~2147483647の範囲で整数値(単位:バイト)を指定します。範囲外の値が指定された場合は0が指定されます。
- 0を指定した場合は,JITコンパイル時に確保するメモリは上限値で制限されません。
- 負の値や整数値以外を指定した場合はエラーとなります。
出力形式
[<id>][Thread: <thread_id>]<<date>>["<thread_name>" exceeded max memory size.]
[<current_size>K-><new_size>K/<limit_size_per_thread>K/<limit_size>K]
[<compile_target>][<byte_code_size>] |
- 出力内容を次に説明します。
- id
- JMS (日立JavaVMログファイル識別子)
- thread_id
- JITコンパイルを抑制したJITコンパイラスレッドのスレッドID。
- date
- JITコンパイルを抑制した日時。
- -XX:+HitachiOutputMilliTimeオプションを指定するとミリ秒単位で出力します。
- thread_name
- JITコンパイルを抑制したJITコンパイラスレッドのスレッド名。
- current_size
- JITコンパイルを抑制したJITコンパイラスレッドの現在のメモリ確保サイズ(単位:キロバイト)。
- new_size
- JITコンパイルを抑制したJITコンパイラスレッドの現在のメモリ確保サイズと追加で確保しようとしたサイズの合計(単位:キロバイト)。
- limit_size_per_thread
- ひとつのJITコンパイラスレッドの上限値(単位:キロバイト)。
- limit_size
- JITコンパイラスレッド全体の上限値(単位:キロバイト)。
- compile_target
- JITコンパイル処理の対象となっていたJavaメソッド。
- byte_code_size
- JITコンパイル処理の対象となっていたJavaメソッドのバイトコードのサイズ(単位:バイト)。
注意事項
- このオプションは-serverオプションを指定してサーバVMを起動したときに有効となります。
- JITコンパイル時に確保するメモリが,このオプションで指定した上限値を超え,JITコンパイルが抑制されると,アプリケーションのスループットが低下します。