-XX:HitachiJITCompileMaxMemorySize(JITコンパイル時の確保メモリ上限値指定オプション)
形式
-XX:HitachiJITCompileMaxMemorySize=<整数値>
説明
JITコンパイル時に確保するCヒープのメモリサイズの上限値を指定します。JITコンパイルによって確保するCヒープのメモリが指定値を超えた場合,JavaVMログファイルにログを出力するとともに,以降のJITコンパイルを抑制します。JITコンパイル処理の対象となっていたJavaメソッドは,以降,インタプリタでだけ実行されるようになります。なお,JITコンパイルが抑制された場合でも,JavaVMは強制終了しないで,処理を続行します。
0を指定した場合,JITコンパイル時に確保するメモリは上限値で制限されません。
なお,JITコンパイルはJavaVMの内部スレッド(JITコンパイラスレッド)で実行されます。JITコンパイラスレッドは二つあるため,このオプションで指定した上限値を2で割った値が,一つのJITコンパイラスレッドに対する上限値となります。
また,このオプションで上限値を設定した場合も,実際に使用できるCヒープがそれよりも少ないときには,上限値に達する前にCヒープ不足が発生することがあります。この場合,JavaVMは強制終了します。
- デフォルト値
-
-
-XX:HitachiJITCompileMaxMemorySize=0
-
- 前提オプション
-
-
-server
-
引数
- <整数値>
-
JITコンパイル時に確保するメモリの上限値を指定します。単位はバイトです。単位文字として,「k」(キロ),「m」(メガ),「g」(ギガ)も指定できます。指定できる範囲は次のとおりです。範囲外の値を指定した場合は,0が指定されます。
-
0〜264-1(18446744073709551615)
0を指定した場合は,JITコンパイル時に確保するメモリは上限値で制限されません。JITコンパイル中にCヒープ不足が発生した場合,JavaVMは強制終了します。
-
出力形式
[id][Thread: thread_id]<date>["thread_name" exceeded max memory size.] [current_sizeK->new_sizeK/limit_size_per_threadK/limit_sizeK] [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メソッドのバイトコードのサイズ(単位:バイト)。
出力例
オプションとして「-XX:HitachiJITCompileMaxMemorySize=536870912」を指定して,一つのJITコンパイラスレッドに対して262145キロバイトのCヒープを確保した場合に,上限値に達したときの出力例を示します。
[JMS][Thread: 0x03bf1150]<Wed Feb 24 14:33:58 2010>["CompilerThread0" exceeded max memory size.][262143K->262145K/262144K/524288K][test1.func][213]
注意事項
-
JITコンパイル時に確保するメモリが,このオプションで指定した上限値を超えて,JITコンパイルが抑制されると,アプリケーションのスループットが低下します。
-
自然数以外の値が指定された場合は,定義していないオプションを指定した場合と同様の動作になります。