Hitachi

Cosminexus V11 アプリケーションサーバ リファレンス 定義編(サーバ定義)


-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]

注意事項