ヘッダーをスキップ
Oracle® JRockitコマンドライン・リファレンス
リリースR28
B61441-03
  目次へ移動
目次

前
 
次
 

3 -XXコマンドライン・オプション

この章では、Oracle JRockit JVMの-XXコマンドライン・オプションについて説明します。これらのオプションはすべて-XXで始まります。

これらのオプションの中には実装するために特定のシステム要件を満たすことが必要なものがあり、その要件が満たされていない場合は、特定のオプションが機能しないことがあります。これらのオプションを使用するのは、使用中のシステムを熟知している場合のみにすることをお薦めします。これらのオプションの使用方法を誤ると、システムの安定性やパフォーマンスに悪影響が生じる場合があります。


注意:

-XXオプションは常に変更される可能性があります。

この章では、JRockit JVMで使用できるすべての-XXコマンドライン・オプションが、アルファベット順に一覧表示されています。


注意:

  • コマンドライン・オプションは、明確に規定されていないかぎり大/小文字を区別します。ほとんどのコマンドはキャメル記法を使用します(-XXgcThreads-XXcompactionなど)。

  • 一部のコマンドライン・オプションはHotSpotの実装形式を使用します。つまり、-XXと、新しいハッシュ関数の有効(+)または無効(-)を指定する演算子およびオプション名の間を、コロン(:)で区切る必要があります。

  • メモリー・サイズを指定するオプションの値に単位を追加しないと、そのままの値として解釈されます。たとえば、64は64バイトとして解釈されます。64MBや64KBにはなりません。


-XXaggressive

-XX:AllocChunkSize

-XX:+|-CheckJNICalls

-XX:+|-CheckStacks

-XXcompaction

-XXcompactRatio(非推奨)

-XXcompactSetLimit(非推奨)

-XXcompactSetLimitPerObject(非推奨)

-XXcompressedRefs

-XX:+|-CrashOnOutOfMemoryError

-XX:+|-DisableAttachMechanism

-XXdumpFullState

-XXdumpSize

-XX:ExceptionTraceFilter

-XX:+|-ExitOnOutOfMemoryError

-XX:ExitOnOutOfMemoryErrorExitCode

-XXexternalCompactRatio(非推奨)

-XX:+|-FailOverToOldVerifier

-XX:+|-FlightRecorder

-XX:FlightRecorderOptions

-XX:+|-FlightRecordingDumpOnUnhandledException

-XX:FlightRecordingDumpPath

-XXfullSystemGC

-XXgcThreads

-XX:GCTimeRatio

-XX:GCTimePercentage

-XXgcTrigger

-XX:+|-HeapDiagnosticsOnOutOfMemoryError

-XX:HeapDiagnosticsPath

-XX:+|-HeapDumpOnCtrlBreak

-XX:+|-HeapDumpOnOutOfMemoryError

-XX:HeapDumpPath

-XX:HeapDumpSegmentSize

-XXheapParts(非推奨)

-XXinternalCompactRatio(非推奨)

-XX:+|-JavaDebug

-XXkeepAreaRatio

-XXlargeObjectLimit(非推奨)

-XX:MaxCodeMemory

-XX:MaxDirectMemorySize

-XX:MaximumNurseryPercentage

-XX:MaxLargePageSize

-XX:MaxRecvBufferSize

-XXminBlockSize(非推奨)

-XXnoSystemGC

-XX:OptThreads

-XX:+|-RedoAllocPrefetch

-XX:+|-ReserveCodeMemory

-XX:SegmentedHeapDumpThreshold

-XXsetGC(非推奨)

-XX:StartFlightRecording

-XX:+|-StrictFP

-XXtlaSize

-XX:TreeMapNodeSize

-XX:+|-UseAdaptiveFatSpin

-XX:+|-UseAllocPrefetch

-XX:+|-UseCallProfiling

-XX:+|-UseCfsAdaptedYield

-XX:+|-UseClassGC

-XX:+|-UseCPoolGC

-XX:+|-UseFastTime

-XX:+|-UseFatSpin

-XX:+|-UseLargePagesFor[Heap|Code]

-XX:+|-UseLazyUnlocking

-XX:+|-UseLockProfiling

-XX:+|-UseLowAddressForHeap

-XX:+|-UseNewHashFunction

-XX:+|-UseThreadPriorities

-XXaggressive

-XXaggressiveオプションは、JVMを高速で動作させて、安定した状態を早期に実現するための各種構成を一括して指定するオプションです。この目標を達成するために、JVMで起動時に使用される内部リソースの量は通常よりも多くなりますが、目標が実現された後は、適応性のある最適化が必要とされる頻度は低くなります。

このオプションで行われる構成の内容は、リリースごとに変更される可能性があります。

形式

-XXaggressive

java -XXaggressive myApp

関連オプション

-XXaggressiveオプションはいくつかの設定を行いますが、それらの設定は、コマンドラインで-XXaggressiveオプションの後に明示的なオプションを追加することによってリセットまたは変更できます。

-XX:AllocChunkSize

このオプションを-XX:+UseAllocPrefetchと組み合せると、クリアするチャンクのサイズが-XX:AllocChunkSizeオプションによって設定されます。

形式

-XX:+UseAllocPrefetch -XX:AllocChunkSize=size[k|K][m|M][g|G]

java -XX:+UseAllocPrefetch -XX:AllocChunkSize=1K myApp

デフォルト値

デフォルト値はプラットフォームによって異なります。

関連オプション

-XX:+|-UseAllocPrefetch

-XX:+|-CheckJNICalls

このオプションを起動時に有効にした場合、JRockit JVMではJNI呼出しへのすべての引数が検証され、無効なJNI呼出しが検出されると、違反を示すエラー・メッセージとともにJVMが終了します。

形式

-XX:+|-CheckJNICalls

java -XX:+CheckJNICalls myApp

デフォルト

無効

関連オプション

-XX:+CheckJNICalls-Xcheck:jniと同等です。

-XX:+|-CheckStacks

このオプションは、JNIのメソッド・エントリでJVMがスタック・オーバーフローを明示的にチェックするかどうかを指定します。

形式

-XX:+|-CheckStacks

java -XX:+CheckStacks myApp

デフォルト

JRockitバージョンR28.0.0からR28.3.1では、このオプションはデフォルトで無効になっています。

JRockitバージョンR28.3.2以降では、このオプションはデフォルトで有効になっています。

-XXcompaction

圧縮は、Javaヒープ内のライブ・オブジェクトを寄せ集めて連続的な空き領域を拡大し、大きなオブジェクトの割当てに利用できるようにします。JVMがヒープを圧縮する際は、オブジェクトが移動されるため、すべてのスレッドを休止する必要があります。休止時間を短縮するため、ヒープの一部のみが圧縮されます。

形式

-XXcompaction:parameter1=value1[,parameter2=value2]

表3-1に、-XXcompactionオプションに指定できるパラメータの一覧を示します。

表3-1 -XXcompactionのパラメータ

パラメータ 説明 デフォルト値
abortable

圧縮が中断可能なことを指定します。

ガベージ・コレクション・タイプがdeterministicまたはpausetimeの場合、デフォルト値はtrueです。それ以外の場合は、デフォルト値はfalseです。

注意: このオプションをfalseに設定することはできません。

enable

圧縮を有効にします。

falseに設定されていると、このオプションはガベージ・コレクション中の圧縮を無効にします。圧縮を無効にするとガベージ・コレクションの休止時間は減少しますが、Javaヒープの断片化やアプリケーション・スループットの低下、あるいはメモリー不足エラーの発生を引き起こす可能性があります。

各ガベージ・コレクションでは、部分的な圧縮は最小限、行われます。

圧縮をまったく行わない場合は、このコマンドを起動時に使用して圧縮を無効にしますが、いずれにしても次の場合は圧縮が行われます。

  • ヒープを縮小した場合、圧縮が実行されてヒープの最上部にあるオブジェクトが移動されます。

  • 断片化のためにオブジェクト割当てが数回失敗すると、圧縮が発生します。

  • 外部API(SystemGC、診断コマンド、jrockit.vm.GC.runFullGcなど)でトリガーされた完全なガベージ・コレクション中に、圧縮が発生します。

true

注意: このオプションの有効な値はtrueです。このオプションがfalseに設定されていると、警告が出力されます。

externalPercentage

外部圧縮中に圧縮するヒープの割合を設定します。

注意: -XXcompaction:percentageオプションは、-XXcompcation:internalPercentageおよび-XXcompaction:externalPercentageの両方の値を設定します。

圧縮が中断可能な場合、デフォルト値はヒープの0.78%です。それ以外の場合は、デフォルト値はヒープの6.25%です。

full

常に完全圧縮が行われ、古いコレクションごとにヒープ全体が圧縮されるようになります。完全圧縮を行うと、ヒープの断片化が最小限に抑えられることによりアプリケーションのスループットが向上しますが、圧縮時のガベージ・コレクションの休止時間が非常に長くなる場合があります。

例:

java -XXcompaction:full myApp

起動時にこのコマンドを入力し、完全圧縮を指定します。完全圧縮を確実に行うには、これが唯一の方法です。

false

heapParts

圧縮のヒープ・パーツの数を設定します。

4096

initialPercentage

内部圧縮中に圧縮するヒープの割合を設定します。

圧縮が中断可能な場合、デフォルト値はヒープの0.78%です。それ以外の場合は、デフォルト値はヒープの6.25%です。

internalPercentage

内部圧縮中に圧縮するヒープ・パーツの数を設定します。

注意: -XXcompaction:percentageオプションは、-XXcompcation:internalPercentageおよび-XXcompaction:externalPercentageの両方の値を設定します。

圧縮が中断可能な場合、デフォルト値はヒープの0.78%です。それ以外の場合は、デフォルト値はヒープの6.25%です。

maxReferences

圧縮領域内のオブジェクトへの参照の最大数を設定します。JRockit JVMはガベージ・コレクションごとにJavaヒープの小さな部分を圧縮します。圧縮された領域内のオブジェクトへの参照は、圧縮セットに格納されます。非確定的ガベージ・コレクションを実行しているときは、圧縮領域への参照の数が圧縮の休止時間に影響を与えます。このオプションを使用すると、圧縮の休止時間を制限することができます。

例:

java -XXcompaction:maxReferences=10000 myApp

このコマンドは、圧縮制限で圧縮領域内のオブジェクトへの参照を10,000に設定します。

ガベージ・コレクション・タイプがpausetimeまたはdeterministicの場合、デフォルト値は10200です。それ以外の場合は、デフォルト値は299900です。

maxReferencesPerObject

圧縮領域内の単一のオブジェクトへの参照の最大数を設定します。いずれかのオブジェクトへの参照の数が、このオプションで指定された値を超えている場合、圧縮中にそのオブジェクトの移動は行われません。

圧縮中にオブジェクトが移動される場合は、そのオブジェクトへの参照を更新する必要があります。その該当オブジェクトへの参照が多いオブジェクトの移動は、該当オブジェクトへの参照が少ないオブジェクトの移動よりもはるかにコストがかかります。

例:

java -XXcompaction:maxReferencesPerObject=500 myApp

このコマンドは、圧縮制限でオブジェクトごとの参照を500に設定します。

100

percentage

ガベージ・コレクタが各ガベージ・コレクションで圧縮するヒープの割合を指定します。

JVMがヒープを圧縮している間は、オブジェクトがJVMで移動されるため、オブジェクトにアクセスしようとするスレッドはすべて待機する必要があります。したがって、休止時間を短縮するためにヒープの一部のみが圧縮されます。

ガベージ・コレクションに時間がかかりすぎるときは、圧縮領域を減らして休止時間を短くすると有効な場合があります。あるいは、特に非常に大きい配列を割り当てているときには、圧縮領域を増やしてヒープ上の断片化を減らし、それによって割当てを高速化することが必要になる場合があります。

例:

java -XXcompaction:percentage=10 myApp

このコマンドが500MBのヒープで設定されていると、ガベージ・コレクタは古いコレクションごとにヒープの50MBを圧縮します。

注意: -XXcompaction:percentageオプションは、-XXcompcation:internalPercentageおよび-XXcompaction:externalPercentageの両方の値を設定します。

圧縮が中断可能な場合、デフォルト値はヒープの0.78%です。それ以外の場合は、デフォルト値はヒープの6.25%です。


java -XXcompaction:heapParts=8000,internalPercentage=0.5 myApp

このオプションを2GBのヒープで設定すると、内部圧縮ごとにヒープの10MBを圧縮します。

デフォルト

有効

例外

-XXcompactionオプションを使用する場合は、次の点に注意してください。

  • 同じ-XXcompactionオプション内で互いに競合するパラメータは使用しないでください。

    • percentageパラメータは、internalPercentageおよびexternalPercentageの各パラメータと競合します。

    • fullパラメータは、percentageinitialPercentageinternalPercentageおよびexternalPercentageなどの他のパーセンテージ・パラメータと競合します。

    • abortableパラメータはfalseに設定できません。

    • enableパラメータをfalseに設定すると、警告が出力されます。

  • コマンドラインで先に指定されたパラメータは、後から指定されたパラメータによってオーバーライドされます。

-XXcompactRatio(非推奨)

-XXcompactRatioオプションは、Oracle JRockit R28で非推奨とされています。このオプションはR28で機能しますが、かわりに-XXcompaction:percentageを使用することをお薦めします。詳細は、「-XXcompaction」を参照してください。

-XXcompactRatioの形式および使用に関する詳細は、次の場所でR27のドキュメントを参照してください。http://download.oracle.com/docs/cd/E13150_01/jrockit_jvm/jrockit/jrdocs/refman/index.html

-XXcompactSetLimit(非推奨)

-XXcompactSetLimitオプションは、Oracle JRockit R28で非推奨とされています。このオプションはR28で機能しますが、かわりに-XXcompaction:maxReferencesを使用することをお薦めします。詳細は、「-XXcompaction」を参照してください。

-XXcompactSetLimitの形式および使用に関する詳細は、次の場所でR27のドキュメントを参照してください。http://download.oracle.com/docs/cd/E13150_01/jrockit_jvm/jrockit/jrdocs/refman/index.html

-XXcompactSetLimitPerObject(非推奨)

-XXcompactSetLimitPerObjectオプションは、Oracle JRockit R28で非推奨とされています。このオプションはR28で機能しますが、かわりに-XXcompaction:maxReferencesPerObjectを使用することをお薦めします。詳細は、「-XXcompaction」を参照してください。

-XXcompactSetLimitPerObjectの形式および使用に関する詳細は、次の場所でR27のドキュメントを参照してください。http://download.oracle.com/docs/cd/E13150_01/jrockit_jvm/jrockit/jrdocs/refman/index.html

-XXcompressedRefs

-XXcompressedRefsオプションは、圧縮された参照の使用を制御し、ヒープに格納されるすべてのポインタを32ビットに制限します。圧縮された参照を使用するとJavaヒープ・リソースの使用量が削減され、メモリー・バスでトランスポートされるデータの量も減少するため、パフォーマンスが向上します。また、このオプションを指定すると、ヒープ上の領域も解放されます。


注意:

-XXcompressedRefs-XX:CompressedRefsと同等です。

形式

-XXcompressedRefs:parameter=value

このコマンドを表3-2に示すいずれかのパラメータとともに使用して、圧縮された参照の動作を指定します。

表3-2 -XXcompressedRefsのパラメータ

パラメータ 説明
enable=true|false

圧縮された参照を有効または無効にします。

size=4GB|32GB|64GB

圧縮された参照のサイズを指定します。デフォルト・サイズは、表3-3に示すように各ヒープ・サイズによって異なります。


java -Xgc:pausetime -XXcompressedRefs:enable=true myApp
java -Xgc:pausetime -XXcompressedRefs:size=32GB myApp

デフォルト値

-XXcompressedRefsを指定しない場合、ヒープ・サイズが4GB未満であれば、すべての64ビット・マシンで圧縮された参照が有効になります。-Xmxオプションを使用する際、表3-3に示すようにデフォルト値はヒープ・サイズによって異なります。

表3-3 圧縮された参照のデフォルト・サイズ

ヒープ・サイズ 圧縮された参照のデフォルト・サイズ

-Xmx:3g以下

4GB

-Xmx:25g以下

32GB

-Xmx:57g以下

64GB


関連オプション

-XXcompressedRefsによって、他のコマンドライン・オプションが次のような影響を受けます。

  • このオプションとともに指定された初期ヒープ・サイズ(-Xmx)が大きすぎる場合は、実行が停止してエラー・メッセージが生成されます。

  • -XXcompressedRefsオプションを使用して圧縮参照を明示的に指定しない場合、圧縮参照には大きすぎる(64GBを超える)初期ヒープ・サイズ(-Xms)または最大ヒープ・サイズ(-Xmx)を指定すると、圧縮参照は使用されません。JVMは停止されることなく、正常に実行されます。

例外

圧縮された参照に対応していないハードウェア・プラットフォームまたはオペレーティング・システムを使用している場合は、警告が出力され、実行が停止します。

-XX:+|-CrashOnOutOfMemoryError

このオプションが有効な場合、メモリー不足エラーが発生すると、JRockit JVMがクラッシュしてテキストおよびバイナリ・クラッシュ・ファイルを生成します。


注意:

このオプションはR28.1の新機能です。R28.0では機能しません。

JVMがクラッシュしたときのクラッシュ・ファイルの生成はデフォルトで有効になっています。詳細は、『Oracle JRockit診断およびトラブルシューティング・ガイド』のクラッシュ・ファイルの概要に関する項を参照してください。

形式

-XX:+|-CrashOnOutOfMemoryError

java -XX:+CrashOnOutOfMemoryError 

デフォルト

無効

関連オプション

-XX:+ExitOnOutOfMemoryErrorは、このオプションよりも優先されます。

-XX:+|-DisableAttachMechanism

このオプションは、ツール(jrcmdおよびjconsoleなど)をJRockit JVMにアタッチ可能かどうかを指定します。

形式

-XX:+|-DisableAttachMechanism

java -XX:+DisableAttachMechanism 

デフォルト

有効

-XXdumpFullState

通常、JRockit JVMがクラッシュするとプロセスの状態(コア・ダンプと呼ばれる)が保存されます。-XXdumpFullStateを使用すると、ヒープを含むすべてのプロセスの状態が保存されます。ディスク領域の使用量は増えますが、コア・ダンプを使用して、クラッシュを引き起こした問題の原因を突き止めるのがはるかに容易になります。このオプションを使用すると、大量の情報がディスクに保存されます。

形式

-XXdumpFullState

関連オプション

-XXdumpFullStateは、-XXdumpsize:largeと同等です。詳細は、-XXdumpSizeを参照してください。

-XXdumpSize

-XXdumpSizeオプションを使用すると、ダンプ・ファイルを生成し、そのファイルの相対的なサイズを指定することができます。

形式

-XXdumpsize:size

このコマンドを表3-4に示すいずれかのパラメータとともに使用して、ダンプ・ファイルの相対的なサイズを指定します。

表3-4 -XXdumpsizeのパラメータ

ファイル・サイズ 説明
none

ダンプ・ファイルを生成しません。

small

Windowsでは、小さいダンプ・ファイルが生成されます(Linuxでは、詳細なコア・ダンプが生成されます)。小さいダンプには、トレース以外ほとんど何もないスレッド・スタックのみが含まれます。

normal

すべてのプラットフォームで通常のダンプが生成されます。このダンプ・ファイルには、Javaヒープを除くすべてのメモリーが含まれます。

large

Javaヒープを含めて、メモリー内にあるものがすべて含まれます。このオプションを指定した-XXdumpSizeは、-XXdumpFullStateと同等です。


-XX:ExceptionTraceFilter

このオプションを起動時に指定すると、例外ロギングがフィルタ処理されます。JRockit JVMでは、このオプションで指定したタイプと一致する例外のみが記録されます。

形式

-XX:ExceptionTraceFilter=java.lang.Exception

このコマンドを起動時に入力すると、タイプjava.lang.Exceptionクラスの例外が記録されます。

デフォルト値

無効

関連オプション

なし

-XX:+|-ExitOnOutOfMemoryError

このオプションを有効にすると、メモリー不足エラーが最初に発生した時点でJRockit JVMが終了します。メモリー不足エラーを処理するよりも、JRockit JVMのインスタンスを再起動する方が望ましい場合に利用できます。

形式

-XX:+|-ExitOnOutOfMemoryError

起動時にこのコマンドを入力し、メモリー不足エラーが最初に発生した時点でJRockit JVMを終了させます。

デフォルト値

無効

関連オプション

-XX:ExitOnOutOfMemoryErrorExitCode

-XX:ExitOnOutOfMemoryErrorExitCode

このオプションは、メモリー不足エラーが発生したときのJVMプロセスの終了に対する終了コードを指定します。

形式

-XX:ExitOnOutOfMemoryErrorExitCode=value

デフォルト値

51

関連オプション

このオプションは-XX:+|-ExitOnOutOfMemoryErrorオプションとともに動作します。

-XXexternalCompactRatio(非推奨)

-XXexternalCompactRatioオプションは、Oracle JRockit R28で非推奨とされています。このオプションはR28で機能しますが、かわりに-XXcompaction:externalPercentageを使用することをお薦めします。詳細は、「-XXcompaction」を参照してください。

-XXexternalCompactRatioの形式および使用に関する詳細は、次の場所でR27のドキュメントを参照してください。http://download.oracle.com/docs/cd/E13150_01/jrockit_jvm/jrockit/jrdocs/refman/index.html

-XX:+|-FailOverToOldVerifier

このオプションは、新しいタイプ・チェッカが失敗したときに古いベリファイアへのフェイルオーバーが発生するかどうか指定します。

形式

-XX:+|-FailOverToOldVerifier

デフォルト

有効

-XX:+|-FlightRecorder

このオプションはJRockitフライト・レコーダを有効または無効にします。JRockitフライト・レコーダがアプリケーションの起動時に無効にされていると、実行時に有効にすることはできません。

形式

-XX:-FlightRecorder

デフォルト

このオプションは有効になっていますが、デフォルトで実行される記録はありません。-XX:FlightRecorderOptionsを使用してオプションを指定し、記録を開始します。

-XX:FlightRecorderOptions

このオプションはJRockitフライト・レコーダ引数を有効または無効にします。JRockitフライト・レコーダが有効になっている場合のみ使用されます。

形式

-XX:FlightRecorderOptions=parameter1=value[,parameter2=value]

表3-5に、-XX:FlightRecorderOptionsオプションのパラメータの一覧を示します。

表3-5 -XX:FlightRecorderOptionsのパラメータ

パラメータ 説明 デフォルト値
defaultrecording=true|false

バックグラウンドの記録が有効か無効かを指定します。

false

disk=true|false

JRockitフライト・レコーダが連続的な記録をディスクに書き込むかどうかを指定します。

false

dumponexit=true|false

このパラメータはR28.1の新機能です。R28.0では機能しません。

制御された方式でJVMが終了するとき、フライト・レコーダ・データのダンプを生成するかどうかを指定します。

ダンプ・ファイルは、dumponexitpathパラメータで定義された場所に書き込まれます。

false

dumponexitpath=path

このパラメータはR28.1の新機能です。R28.0では機能しません。

制御された方式でJVMが終了するときに(dumponexit=trueの場合)作成される、ダンプ・ファイル(フライト・レコーダ・データを含む)のパスおよび名前を指定します。

指定したパスがディレクトリの場合、作成した日付および時間を示すファイル名がJVMで割り当てられます。指定したパスにファイル名が含まれ、そのファイルがすでに存在する場合、JVMでは指定したファイル名に日付および時間のタイムスタンプを付加することで、新規ファイルが作成されます。


globalbuffersize=size

データ保存に使用される主メモリーの合計量を指定します。

10MB

maxage=time

デフォルト記録のためのディスク・データの最大期間を指定します。

このオプションは、disktrueに設定されている場合のみ有効です。

15分

maxchunksize=size

記録のデータ・チャンクの最大サイズ(MB)を指定します。

12MB

maxsize=size

デフォルト記録のためのディスク・データの最大サイズを指定します。

このオプションは、disktrueに設定されている場合のみ有効です。

制限なし

repository=file_location

一時ディスク記憶域のリポジトリ(ディレクトリ)を指定します。

デフォルトの場所は、システムの一時ディレクトリです。

settings=file_location

イベント設定(.jfs)ファイルの名前および場所を指定します。このオプションは複数回設定できます。

イベント設定ファイルの詳細は、『Oracle JRockitフライト・レコーダ・ラン・タイム・ガイド』のイベントに関する項を参照してください。

jre/lib/jfr/default.jfs

threadbuffersize=size

スレッドごとのローカル・バッファ・サイズを指定します。このパラメータの値が高いと、グローバル記憶域へのフラッシュを競合することなく、より多くのデータを収集することができます。スレッドリッチ環境でアプリケーションのフットプリントも増加します。

バッファの詳細は、『Oracle JRockitフライト・レコーダ・ラン・タイム・ガイド』のJFRバッファに関する項を参照してください。

5KB


java -XX:+FlightRecorder -XX:FlightRecorderOptions=disk=true,maxchunksize=10M MyApp

関連オプション

このオプションは、-XX:+|-FlightRecorderオプションが有効な場合のみ機能します。

-XX:+|-FlightRecordingDumpOnUnhandledException

このオプションは(有効な場合)、スレッドが未処理の例外のために終了したときにFlight Recordingダンプを生成します。ダンプ・ファイルは、-XX:FlightRecordingDumpPathオプションで定義された場所に書き込まれます。

形式

-XX:+|-FlightRecordingDumpOnUnhandledException

java -XX:+FlightRecordingDumpOnUnhandledException myApp

デフォルト

無効

関連オプション

-XX:FlightRecordingDumpPath

-XX:FlightRecordingDumpPath

このオプションは、スレッドが未処理の例外のために終了したときに(-XX:+|-FlightRecordingDumpOnUnhandledExceptionが有効な場合)作成される、ダンプ・ファイル(フライト・レコーダ・データを含む)のパスおよび名前を指定します。

形式

-XX:FlightRecordingDumpPath=path

java -XX:+FlightRecordingDumpOnUnhandledException -XX:FlightRecordingDumpPath=D:\myapp\jfr

デフォルト値

デフォルトのFlight Recordingダンプ・ファイルは、jrockit_pid_thread_id.jfr(pidはJRockitプロセス識別子を表し、thread_idは未処理の例外がスローされたスレッドを表します)として作業ディレクトリに存在します。

-XXfullSystemGC

-XXfullSystemGCオプションを使用すると、System.gc()が呼び出されるたびに、ガベージ・コレクタが完全なガベージ・コレクションを行います。完全なガベージ・コレクションでは、古い領域のコレクションやソフト参照の解除も行われます。Javaからガベージ・コレクションを明示的に呼び出すたびに、ガベージ・コレクタで最大限のガベージ・コレクションを行いたい場合に、このオプションを使用します。

このオプションは、デフォルトのガベージ・コレクタでは十分なメモリーが解放されない場合に役立ちます。ただし、ガベージ・コレクションの休止時間が長くなることがあります。

形式

-XXfullSystemGC

このオプションを使用すると、System.gc()の呼出し時に古い領域のコレクションがすでに実行されている場合は、そのコレクションが終了するのを待ってから、新しい古い領域のコレクションがトリガーされます。-XXfullSystemGCオプションでは、ソフト参照されているすべてのオブジェクトが解放されます。

例外

-XXfullSystemGC-XXnoSystemGCとともに使用することはできません。

-XXgcThreads

このオプションでは、ガベージ・コレクタが使用するガベージ・コレクション・スレッドの数を指定します。このオプションはパラレルのナーサリ・コレクタとパラレルの古い領域コレクタの両方に適用されるだけでなく、コンカレント・コレクタと確定的コレクタにも適用されます。

形式

-XXgcthreads:parameter1=value1,parameter2=value2,...

このコマンドを表3-6に示すいずれかのパラメータとともに使用して、ガベージ・コレクタで使用されるスレッド数を指定します。


注意:

parameterのかわりに数値を指定すると、その数値によって、パラレル・フェーズ中にガベージ・コレクションで使用されるガベージ・コレクション・スレッドの数が決まります。これは、all=numberパラメータを使用する場合と同等です。

例:

java -XXgcThreads:4 myApp


表3-6 XXgcThreadsのパラメータ

パラメータ 説明
all=number of threads

すべてのガベージ・コレクタ(若い、コンカレントおよびパラレル)に対するガベージ・コレクション・スレッドの数と同じ数を指定します。

yc=number of threads

若いコレクタがパラレルで使用するガベージ・コレクション・スレッドの数を指定します。

con=number of threads

古いコレクタがコンカレント・フェーズ中にパラレルで使用するガベージ・コレクション・スレッドの数を指定します。

par=number of threads

古いコレクタが停止(一時停止)フェーズ中にパラレルで使用するガベージ・コレクション・スレッドの数を指定します。


java -XXgcThreads:yc=4,con=2,par=4

デフォルト値

デフォルトでは、これらの値はマシンのコアの数およびハードウェア・スレッドの数に基づいて決められます。

-XX:GCTimePercentage

-XX:GCTimePercentageオプションは、合計実行時間の中でガベージ・コレクションに使用される時間の割合を決定します。

形式

-XX:GCTimePercentage=nn

nnはガベージ・コレクションで使用される時間です。

-XX:GCTimePercentage-XX:GCTimeRatioのかわりとして使用できます。

java -XX:GCTimePercentage=5 myApp 

-XX:GCTimePercentageを5に設定すると、合計時間の5%がガベージ・コレクションに使用されます。これは-XX:GCTimeRatio=19と同等です。

デフォルト値

5%

関連オプション

-XX:GCTimeRatio

-XX:GCTimeRatio

-XX:GCTimeRatioオプションでは、ガベージ・コレクション外で使用される時間(たとえば、アプリケーションの実行に使用される時間)とガベージ・コレクションで使用される時間の比率を指定します。

形式

-XX:GCTimeRatio=nn

nnは、使用される時間の比率を、倍数として表す数値です。

java -XX:GCTimeRatio=50 myApp

デフォルト値

デフォルト値は19です。これは、ガベージ・コレクション外の時間が、ガベージ・コレクションで使用される時間の19倍であることを意味します。

関連オプション

-XX:GCTimePercentage

-XXgcTrigger

このオプションを使って、ヒープの空き領域がどこまで減った時点でコンカレント・ガベージ・コレクションを開始するかを設定できます。コンカレント・ガベージ・コレクション中にヒープが一杯になると、ガベージ・コレクションが一部のヒープ領域を解放するまでJavaアプリケーションはメモリーを割り当てることができません。このため、アプリケーションが休止状態になることがあります。ヒープが一杯にならないようにトリガー値は実行時に自動的にチューニングされますが、この自動のチューニングに時間がかかりすぎることがあります。この機能に頼らずに、-XXgcTriggerを使って、ガベージ・コレクションのトリガー値をアプリケーションに適した値に最初から設定できます。

コンカレント・マーク・フェーズの途中でヒープが一杯になると、スイープ・フェーズはパラレル・スイープに戻ります。この動作が頻繁に起こり、これを回避するためにガベージ・コレクションのトリガー値が自動的に増えない場合、-XXgcTriggerを使ってガベージ・コレクションのトリガー値を手動で増やしてください。

形式

-XXgcTrigger=nn

nnは、ガベージ・コレクションがトリガーされたときに使用できる空きヒープの量を、ヒープ全体に占める割合で表す値です。若い領域は空きヒープの一部とみなされないことに注意してください。

java -XXgcTrigger=50 myApp 

このオプションを設定した場合、JRockit JVMでは、ヒープが50%に達するとガベージ・コレクションがトリガーされます。たとえば、ヒープが1GB以下の場合、約512MBが空きの状態で保たれます。ガベージ・コレクションの現在のトリガー値は、トリガーが変更されるたびに-Xverbose:memdbgの出力に表示されます。

デフォルト値

-XXgcTriggerが指定されていない場合、システムは自動的に適切なパーセンテージ値を見つけようとします。-XXgcTrigger=nnが指定されていると、かわりにこちらが使用され、自動プロセスの関与はありません。

例外

たとえば、コマンドラインで-Xgc:singleparまたは-Xgc:genparを指定して、ガベージ・コレクタがパラレル・マークとパラレル・スイープの両方を実行している場合、ガベージ・コレクタは-XXgcTrigger値を無視します。

-XX:+|-HeapDiagnosticsOnOutOfMemoryError

このオプションは、メモリー不足エラーが発生したときに、JVMがJavaヒープ診断を出力するかどうかを指定します。ダンプ・ファイルは、-XX:HeapDumpPathオプションで定義された場所に書き込まれます。

形式

-XX:+|-HeapDiagnosticsOnOutOfMemoryError

java -XX:+HeapDiagnosticsOnOutOfMemoryError -XX:HeapDiagnosticsPath=D:\myapp\diag_dumps myApp

-XX:HeapDiagnosticsPath

このオプションは、-XX:+|-HeapDiagnosticsOnOutOfMemoryErrorオプションを有効にしている場合、ダンプ・ファイルのパスおよびファイル名を指定します。

形式

-XX:HeapDiagnosticsPath=path

java -XX:+HeapDiagnosticsOnOutOfMemoryError -XX:HeapDumpPath=D:\myApp\diag_dumps myApp

デフォルト値

ダンプ・ファイルのデフォルト名はjrockit_pid.oomdiagで、デフォルト・パスは作業ディレクトリです。

関連オプション

このオプションは-XX:+|-HeapDiagnosticsOnOutOfMemoryErrorオプションとともに動作します。

-XX:+|-HeapDumpOnCtrlBreak

-XX:HeapDumpOnCtrlBreakオプションは、Ctrl-breakキーが押されると自動的に実行されるコマンドのリストに、hprofdump診断コマンドを追加します(print_threads診断コマンドと同様です)。HPROFダンプ・ファイルは、-XX:HeapDumpPathオプションで定義された場所に書き込まれます。

形式

-XX:+HeapDumpOnCtrlBreak

java -XX:+HeapDumpOnCtrlBreak myApp

-XX:+|-HeapDumpOnOutOfMemoryError

-XX:+|-HeapDumpOnOutOfMemoryErrorオプションを有効にした場合、JRockit JVMでは、メモリー不足エラーが発生すると、JavaヒープがHPROFバイナリ形式(.hprofファイル)でダンプされます。

形式

-XX+|-HeapDumpOnOutOfMemoryError

java -XX:+HeapDumpOnOutOfMemoryError myApp

デフォルト

無効

関連オプション

-XX:HeapDumpPath

-XX:HeapDumpPath

-XX:HeapDumpPathオプションは、-XX:+HeapDumpOnOutOfMemoryErrorオプションを使用している場合、ダンプ・ファイルのパスおよびファイル名を指定します。

形式

-XX:HeapDumpPath=path_of_the_dump_file

java -XX:+HeapDumpOnOutOfMemory -XX:HeapDumpPath=D:\myApp\hprof-dumps myApp

デフォルト値

バイナリ・ダンプ・ファイルのデフォルト名はjrockit_pid.hprof(pidはJRockitプロセス識別子を表します)で、デフォルト・パスは作業ディレクトリです。

関連オプション

このオプションは-XX:+|-HeapDumpOnOutOfMemoryErrorおよび-XX:+|-HeapDumpOnCtrlBreakオプションとともに動作します。

-XX:HeapDumpSegmentSize

-XX:HeapDumpSegmentSizeオプションは、セグメント化されたHPROFヘッド・ダンプを生成する際の適切なセグメント・サイズを指定します。

形式

-XX:HeapDumpSegmentSize=size[k|K][m|M][g|G]

java -XX:+HeapDumpOnOutOfMemory -XX:HeapDumpSegmentSize=512M myApp

デフォルト値

1GB

関連オプション

-XX:SegmentedHeapDumpThresholdオプションで指定された値よりもヒープ・サイズが大きくなければ、セグメントは生成されません。

-XXheapParts(非推奨)

-XXheapPartsオプションは、Oracle JRockit R28で非推奨とされています。このオプションはR28で機能しますが、かわりに-XXcompaction:heapPartsを使用することをお薦めします。詳細は、「-XXcompaction」を参照してください。

-XXheapPartsの形式および使用に関する詳細は、次の場所でR27のドキュメントを参照してください。http://download.oracle.com/docs/cd/E13150_01/jrockit_jvm/jrockit/jrdocs/refman/index.html

-XXinternalCompactRatio(非推奨)

-XXinternalCompactRatioオプションは、Oracle JRockit R28で非推奨とされています。このオプションはR28で機能しますが、かわりに-XXcompaction:internalPercentageを使用することをお薦めします。詳細は、「-XXcompaction」を参照してください。

-XXinternalCompactRatioの形式および使用に関する詳細は、次の場所でR27のドキュメントを参照してください。http://download.oracle.com/docs/cd/E13150_01/jrockit_jvm/jrockit/jrdocs/refman/index.html

-XX:+|-JavaDebug

-XX:+|-JavaDebugオプションは、JVM Tools Interface(JVMTI)が使用するデバッグ機能を有効または無効にします。JVMTIは、デバッガやプロファイリング・ツールで使用される低レベルのデバッグ・インタフェースで、JVMで実行中のアプリケーションの状態を調べ、実行を制御することができます。

プロファイラが頻繁に使用するJVMTIのサブセットは、いつでも有効です。しかし、コードをステップ単位に実行したり、ブレーク・ポイントを設定したりできる、デバッガが使用する機能は、オーバーヘッドを伴うため、常に有効なわけではありません。この機能を有効にするには、-XX:+JavaDebugオプションを使用する必要があります。


警告:

本番環境では-XX:+JavaDebugオプションを使用しないでください。-XX:+JavaDebugオプションを指定して実行する場合、JVMは通常の速度では実行されないためです。

形式

-XX:+|-JavaDebug

java -XX:+JavaDebug -agentlib:jdwp=transport=dt_socket,server=y,suspend=n myApp

-agentlibオプションの詳細は、次の場所にあるJavaドキュメントを参照してください。

デフォルト

無効

関連オプション

このオプションは-Xdebugオプションと同等です。

-XXkeepAreaRatio

-XXkeepAreaRatioオプションは、ナーサリ内の保持領域のサイズをナーサリに対する割合として設定します。この保持領域は、新しく割り当てられたオブジェクトが早期に古い領域にプロモートされることを防ぎます。

形式

-XXkeepAreaRatio:<percentage>

java -XXkeepAreaRatio:10 myApp

保持領域のサイズをナーサリ・サイズの10%に設定します。

デフォルト値

デフォルトの保持領域はナーサリ・サイズの25%です。保持領域はナーサリ・サイズの50%を越えることはできません。

例外

保持領域の割合は、ガベージ・コレクタが世代別である場合のみ有効です。

-XXlargeObjectLimit(非推奨)

-XXlargeObjectLimitオプションは、Oracle JRockit R28で非推奨とされています。このオプションはR28で機能しますが、かわりに-XXtlaSize:wasteLimitを使用することをお薦めします。詳細は、「-XXtlaSize」を参照してください。

-XXlargeObjectLimitの形式および使用に関する詳細は、次の場所でR27のドキュメントを参照してください。http://download.oracle.com/docs/cd/E13150_01/jrockit_jvm/jrockit/jrdocs/refman/index.html

-XX:MaxCodeMemory

-XX:MaxCodeMemoryオプションは、生成されたコードに使用される最大メモリーを指定します。

形式

-XX:MaxCodeMemory=size[g|G|m|M|k|K]

java -XX:MaxCodeMemory=2g myApp

デフォルト値

Windows IA32、Linux IA32、Windows x86_64およびLinux x86_64で、デフォルト値は制限されていません。-XX:+ReserveCodeMemoryオプションがこれらのプラットフォームで指定されている場合、デフォルトの最大コード・メモリーは次のようになります。

  • -XX:+UseLargePagesForCodeを使用する場合: 64MB

  • -XX:-UseLargePagesForCodeを使用する場合: 1024MB

Solaris SPARCでは、デフォルトの最大コード・メモリーは256MBです。

-XX:MaxDirectMemorySize

このオプションは、java.nio(新規I/Oパッケージ)の直接バッファ割当ての最大合計サイズを指定します。

形式

-XX:MaxDirectMemorySize=size[g|G|m|M|k|K]

java -XX:MaxDirectMemorySize=2g myApp

デフォルト値

デフォルト値はゼロです。つまり、最大直接メモリーは制限されていません。

-XX:MaximumNurseryPercentage

-XX:MaximumNurseryPercentageオプションを使用すると、直近の古いコレクション後の使用可能なヒープの空き領域に対して相対的に、ナーサリ・サイズの上限を設定できます。それには、使用可能なヒープの空き領域のサイズに対する割合値として、この上限を指定します。

形式

-XX:MaximumNurseryPercentage=<value> [1-95]

ナーサリ・サイズの上限を1より小さい値または95より大きい値に設定すると、エラー・メッセージが表示されます。

java -XX:MaximumNurseryPercentage=80 myApp

デフォルト値

95%

例外

このオプションは、世代別ガベージ・コレクタを使用中でなければ効果がありません。

-XX:MaxLargePageSize

このオプションは、ラージ・ページの最大サイズを指定します。

形式

-XX:MaxLargePageSize=size[g|G|m|M|k|K]

java -XX:MaxLargePageSize=2g myApp

デフォルト値

デフォルト値は、JRockitバージョンR28.0.0からR28.2.2ではゼロです。つまり、この値はオペレーティング・システムで指定されます。

JRockitバージョンR28.2.3以降では、デフォルト値は256MBです。

関連オプション

このオプションは、-XlargePagesまたは-XX:+|-UseLargePagesFor[Heap|Code]が指定されている場合のみ有効です。

-XX:MaxRecvBufferSize

このオプションは、ネットワーク・ソケットから読み取る際の受信バッファの最大サイズを指定します。

このオプションはWindowsのみに適用されます。


注意:

このオプションはR28.1の新機能です。R28.0では機能しません。

このオプションを0に設定すると、受信バッファ・サイズは無制限となります。これがR28.0での動作です。


形式

-XX:MaxRecvBufferSize=size[g|G|m|M|k|K]

java -XX:MaxRecvBufferSize=32k myApp

デフォルト値

64k

-XXminBlockSize(非推奨)

-XXminBlockSizeオプションは、Oracle JRockit R28で非推奨とされています。このオプションはR28で機能しますが、かわりに-XXtlaSize:minを使用することをお薦めします。詳細は、「-XXtlaSize」を参照してください。

-XXminBlockSizeの形式および使用に関する詳細は、次の場所でR27のドキュメントを参照してください。http://download.oracle.com/docs/cd/E13150_01/jrockit_jvm/jrockit/jrdocs/refman/index.html

-XXnoSystemGC

-XXnoSystemGCオプションでは、System.gc()メソッドの呼出しによって、ガベージ・コレクションが開始することが防止されます。System.gc()メソッドの詳細は、java.lang.Systemの仕様を次の場所で参照してください。

アプリケーションがSystem.gc()を使用していて、コレクションを実行するタイミングをガベージ・コレクタで判断させる場合は、このオプションを使用してください。このオプションは一部のデバッグ状況で有用であり、また、不必要なガベージ・コレクションの発生を防ぐことでパフォーマンスも向上します。

形式

-XXnoSystemGC

起動時に上記の形式でコマンドを入力します。このオプションを使用すると、場合によってはガベージ・コレクションの休止時間が長くなることがありますが、一般にはアプリケーションのパフォーマンスが向上します。

例外

-XXnoSystemGC-XXfullSystemGCとともに使用することはできません。

-XX:OptThreads

-XX:OptThreadsオプションは、JVMでJavaメソッドの最適化のために使用されるスレッドの数を指定します。Javaメソッドの最適化はバックグラウンドで実行されます。

形式

-XX:OptThreads=nn

java -Xgc:pausetime -XX:OptThreads=3 myApp

タスクの最適化のために3つのスレッドを使用するようにコンパイラに指示します。

デフォルト値

デフォルトで、1つのスレッドはJavaメソッドの最適化に使用されます。

-XX:+|-RedoAllocPrefetch

このオプションを指定すると、新しいチャンクが使用された時点でフェッチされるチャンクが1つ多くなります(後続の2つのチャンクがフェッチされるようになります)。


注意:

Intel Xeonサーバーでこの機能の効果を十分に上げるには、コンピュータのBIOSでハードウェア・プリフェッチを無効にすることをお薦めします。

形式

-XX:+RedoAllocPrefetch

java -XX:+UseAllocPrefetch -XX:+RedoAllocPrefetch myApp

デフォルト

有効

例外

-XX:+|-UseAllocPrefetchを設定しないと、このオプションは機能しません。

-XX:+|-ReserveCodeMemory

このオプションが有効になっていると、JVMが起動時に生成されたコードのためにメモリーを確保します。

形式

-XX:+ReserveCodeMemory

java -XX:+ReserveCodeMemory myApp

デフォルト

このオプションは、Solaris SPARC、Windows x86_64およびLinux x86_64の各プラットフォームでデフォルトで有効になっています。デフォルト値は次のように、-XX:+|-UseLargePagesForCodeオプションによって異なります。

  • -XX:+UseLargePagesForCodeを使用する場合: 64MB

  • -XX:-UseLargePagesForCodeを使用する場合: 1024MB

Solaris SPARCでは、デフォルトのコード・メモリーは256MBです。

関連オプション

-XX:+|-UseLargePagesFor[Heap|Code]

-XX:SegmentedHeapDumpThreshold

-XX:SegmentedHeapDumpThresholdオプションは、ヒープ使用量が指定したサイズを上回ると、セグメント化されたヒープ・ダンプ(.hprofファイル、1.0.2形式)を生成します。

4GBを超えるデータを含むヒープ・ダンプを生成するには、セグメント化されたhprofダンプ形式が必要です。-XX:SegmentedHeapDumpThresholdオプションに4GBを超える値を設定すると、ヒープ・ダンプが正常に生成されないことがあります。

形式

-XX:SegmentedHeapDumpThreshold=size

java -XX:SegmentedHeapDumpThreshold=512M myApp

デフォルト値

2GB

関連オプション

このオプションは、-XX:+|-HeapDumpOnOutOfMemoryErrorとともに使用できます。

-XXsetGC(非推奨)

-XXsetGCオプションは、Oracle JRockit R28で非推奨とされています。このオプションはR28で機能しますが、かわりに-Xgcを使用することをお薦めします。詳細は、「-Xgc」を参照してください。

-XXsetGCの形式および使用に関する詳細は、次の場所でR27リリースのドキュメントを参照してください。http://download.oracle.com/docs/cd/E13150_01/jrockit_jvm/jrockit/jrdocs/refman/index.html

-XX:+|-StrictFP

このオプションを有効にすると、JRockit JVMは厳密な浮動小数点演算をすべてのクラスのすべてのメソッドでグローバルに有効にします。また、JVMはJava仕様で要求されているより高い精度で、より広い値の範囲を使って計算を行います。このオプションを使用した場合、コンパイラはJava仕様に厳密に準拠するコードを生成し、どのプラットフォームでもまったく同じ結果が得られるようにします。このオプションを使用しないと、JVMは浮動小数点値をそれほど厳密に適用しません。

このオプションは、Javaキーワードstrictfpに似ています。ただし、このキーワードはクラス・レベルで適用されるのに対し、-XX:+|-StrictFPはグローバルに適用されます。strictfpキーワードの詳細は、次の場所で「Java Language Specification」を参照してください。

http://java.sun.com/docs/books/jls/

形式

-XX:+StrictFP

デフォルト値

無効

関連オプション

このオプションは-XstrictFPオプションと同等です。

-XX:StartFlightRecording

JRockit JVMで実行されるアプリケーションのフライト・レコーダ記録を開始するには、このオプションを起動時に指定します。このオプションは、フライト・レコーダを実行時に開始するstart_flightrecording診断コマンドと同等です。詳細は、Oracle JRockit JDKツールを参照してください。

形式

-XX:StartFlightRecording=parameter1=value1[,parameter2=value2]

-XX:StartFlightRecordingを、表3-7に示すパラメータとともに使用します。

表3-7 -XX:StartFlightRecordingのパラメータ

パラメータ 説明 デフォルト値
compress=true|false

ディスク上のフライト・レコーダ記録ログ・ファイル(.jfrファイル)を、gzipファイル圧縮ユーティリティを使用して圧縮するかどうかを指定します。このパラメータは、filenameオプションが指定されている場合のみ有効です。

false

defaultrecording=true|false

記録を連続的に行うか、限られた時間だけ実行するかを指定します。

false

delay=time

実行時間の最初から記録を開始するまでの時間を指定します。

0

duration=time

記録のための時間を指定します。

無制限

filename=name

フライト・レコーダ記録ログ・ファイル(.jfrファイル)の名前を指定します。

なし

name=identifier

フライト・レコーダ記録の識別子を指定します。

Recording x(例: Recording 1、Recording 2)

maxage=time

デフォルト記録のためのディスク・データの最大期間を指定します。

15分

maxsize=size

記録のための最大ディスク領域を指定します。このパラメータは、サイズが制限された記録のみに有効です。

制限なし

settings=eventfile

記録に使用するイベント設定ファイルを指定します。このパラメータは、1つのコマンドで複数回使用できます。

jre/lib/jfr/default.jfs


java -XX:+FlightRecorder -XX:FlightRecorderOptions=disk=true,maxchunksize=10M -XX:StartFlightRecording=filename=test.jfr myApp

-XXtlaSize

-XXtlaSizeオプションはスレッド・ローカル領域のサイズを設定します。

パフォーマンスを上げるために、JRockit JVMではオブジェクトの割当てにスレッド・ローカル領域(TLA)を使用します。このオプションでスレッド・ローカル領域のサイズをチューニングし、パフォーマンスに影響を与えることができます。

形式

-XXtlaSize:parameter=size[k|K][m|M][g|G]

表3-8に、パラメータの一覧を示します。

表3-8 -XXtlaSizeパラメータ

パラメータ 説明
min=size

TLAの最小サイズを設定します。

preferred=size

TLAの優先サイズを設定します。システムは、可能であればこのサイズのTLAの取得を試行しますが、取得できない場合は、最小サイズのTLAを取得します。場合によっては、TLAが優先サイズより大きいこともあります。優先サイズは、最小サイズより小さな値にはしないでください。

wasteLimit=size

TLAの浪費上限を設定します。これは、スレッドで新規TLAが必要なときにTLAが保持できる空きメモリーの最大量です。


-XXtlaSizeに上限または下限はありません。

このオプションは注意して使用してください。スレッド・ローカル領域のサイズを変更すると、パフォーマンスに重大な影響を与える可能性があります。

通常のkMGの接尾辞を使用して、sizeをバイト単位で指定します。


注意:

TLAサイズの旧式の設定(-XXtlasize=256k)は引続きサポートされていますが、非推奨です。旧式の設定を行うと、JRockit JVMでは、preferredパラメータが使用されたものとしてオプションを解釈します。たとえば、-XXtlasize=256kを指定すると、これは-XXtlasize:preferred=256kとして解釈されます。

-XXtlasize:min=2k,preferred=16k

デフォルト値

最小サイズおよび浪費上限の両方のデフォルト値は2KBです。浪費上限は、最小サイズより大きい値に設定することはできません。

優先サイズのデフォルト値は、ヒープ・サイズまたはナーサリ・サイズと起動時に選択したガベージ・コレクタによって異なります。表3-9にそれぞれの構成のデフォルト・サイズを示します。

表3-9 デフォルトのTLAの優先サイズ

ガベージ・コレクタ デフォルトのTLAの優先サイズ
-Xgc:deterministic, -Xgc:singlecon

16KB

-Xgc:pausetime, -Xgc:gencon

16KB - 256KB(ナーサリ・サイズに応じて異なる)

-Xgc:throughput, -Xgc:genpar

16KB - 64KB(ヒープ・サイズに応じて異なる)

-Xgc:parallel 

16KB - 256KB(ヒープ・サイズに応じて異なる)

-Xnsで設定されたナーサリ・サイズ

16KB - 256KB(ナーサリ・サイズに応じて異なる)


関連オプション

TLAサイズのパラメータには次の相関関係があります。

-XXtlaSize:wasteLimit <= -XXtlaSize:min <= -XXtlaSize:preferred

オプションを2つ以上設定する場合は、使用する値がこれらの条件を満たすようにします。デフォルトで浪費上限は、TLAの最小サイズと、TLAの優先サイズを2で割った値のうち、小さい方の値に設定されます。

-XX:TreeMapNodeSize

このオプションは、個々のjava.util.TreeMapノードのエントリ配列のサイズを指定します。このオプションはJVMのパフォーマンスに影響し、デフォルト値はほとんどのアプリケーションに適しています。

形式

-XX:TreeMapNodeSize=array_size

java -XX:TreeMapNodeSize=128 myApp

デフォルト値

各TreeMapノードのキー値の配列のデフォルト・サイズは64エントリです。

-XX:+|-UseAdaptiveFatSpin

このオプションは、スレッドがファット・ロックをスピンするか、スピンしない(そのファット・ロックが取得できない場合に直接スリープ状態に入る)かを指定します。

形式

-XX:+|-UseAdaptiveFatSpin

デフォルト値

デフォルトでは、ファット・ロックに対する適応性のスピンは無効になっています。この動作は実行時間中に変更できません。

-XX:+|-UseAllocPrefetch

このオプションを指定すると、スレッド・ローカル領域がチャンクに分割され、新しいチャンクが使用された時点で、その次のチャンクがプリフェッチされます。


注意:

Intel Xeonサーバーでこの機能の効果を十分に上げるには、コンピュータのBIOSでハードウェア・プリフェッチを無効にすることをお薦めします。

形式

-XX:+|-UseAllocPrefetch

java -Xgc:pausetime -XX:+UseAllocPrefetch myApp

デフォルト

有効

関連オプション

-XX:+|-RedoAllocPrefetchを使用する場合は、このオプションを設定する必要があります。このオプションは-XX:AllocChunkSizeオプションとともに使用することもできます。

-XX:+|-UseCallProfiling

このオプションはコードの最適化のために、呼出しのプロファイリングの使用を有効化します。プロファイリングでは、アプリケーションに固有の有用な実行時統計を記録します。JVMがその統計を実行するためにパフォーマンスが向上します。

形式

-XX:+|-UseCallProfiling

java -XX:+UseCallProfiling myApp

デフォルト

無効

-XX:+|-UseCfsAdaptedYield

有効にすると、このオプションはCompletely Fair Scheduler(CFS)に順応した生成バージョンを使用します。このオプションは、JVMのパフォーマンスに問題が生じた場合だけ、CFSのみで使用してください。


注意:

このオプションはLinuxのみで使用できます。

形式

-XX:+|-UseCfsAdaptedYield

java -XX:+UseCfsAdaptedYield myApp

デフォルト

無効

-XX:+|-UseClassGC

このオプションは、クラスのガベージ・コレクションを有効または無効にします。

クラスのガベージ・コレクションを無効にすると、ガベージ・コレクションの時間をある程度節約し、アプリケーション実行時の中断を最小限にすることができます。クラスのガベージ・コレクションを無効にすると、永続的に占有されるメモリーが増えます。このため、このオプションを注意して使用しないと、JVMでメモリー不足エラーがスローされます。


注意:

アプリケーションの実行時にメモリー・リークを引き起こす可能性があるため、必要がないかぎりは、このオプションを無効にしないことをお薦めします。

形式

-XX:-UseClassGC

java -XX:-UseClassGC myApp

myAppで指定されたアプリケーション内のクラス・オブジェクトは、ガベージ・コレクション中も元の状態のままであり、常にアクティブであると認識されます。

-XX:+|-UseCPoolGC

このオプションは、定数プール文字列のガベージ・コレクションを有効または無効にします。

定数プール文字列のガベージ・コレクションを無効にすると、ランタイム共有プールから文字列の削除に伴うガベージ・コレクションのオーバーヘッドを削減できる場合があります。定数プール文字列のガベージ・コレクションを無効にすることで、永続的に占有されるメモリーが増える可能性があります。このため、オプションを慎重に使用しないと、JVMがメモリー不足エラーをスローする場合があります。


注意:

このオプションはJRockit R28.3.2以降使用可能です。

アプリケーション実行時にメモリー・リークが発生する可能性があるため、Oracleサポートによってリクエストされないかぎり、このオプションを無効にしないことを強くお薦めします。


定数プールのガベージ・コレクションが無効になっていても、ガベージ・コレクション・システムの支援なしに、特定の文字列が不要になりこれを定数プールから削除することをJVMが判別できる場合があります。

形式

-XX:+|-UseCPoolGC

java -XX:-UseCPoolGC myApp

myAppで指定されたアプリケーション内の定数プール文字列は、ガベージ・コレクション中も元の状態のままであり、削除することはできません。

デフォルト

このオプションはデフォルトで有効化されています。

次以降

JRockitバージョンR28.3.2。

-XX:+|-UseFastTime

このオプションは、レイテンシのタイムスタンプを低くするためのハードウェア・サポートの使用を指定します。


注意:

ハードウェア・タイムスタンプをサポートしていないプラットフォームでこのオプションを有効にすると、JRockit JVMで有効ではないタイムスタンプが使用されることになり、致命的なエラーが引き起こされる可能性があります。

形式

-XX:+|-UseFastTime

デフォルト

このオプションは、最新のAMDおよびIntel XEONの各プラットフォームにおいてデフォルトで有効になっています。

-XX:+|-UseFatSpin

-XX:-UseFatSpinオプションでは、Javaのファット・ロック・スピン・コードを無効にし、ファット・ロックを取得しようとしてブロックされたスレッドが直接スリープ状態に入れるようにします。

Javaのオブジェクトは、いずれかのスレッドがそのオブジェクト上で同期ブロックに入るとすぐにロックになります。すべてのロックは、ロックしているスレッドが解放するまで保持されます(つまりロックされたままになります)。ロックがすぐに解放されないと、ロックはファット・ロックに引き上げられることがあります。スピンは、特定のロックを必要としているスレッドが、タイトなループの中でスピンしながら、そのロックがまだ取得されているかどうかを継続的にチェックするときに発生します。ファット・ロックに対するスピンは一般に効果がありますが、場合によっては負荷をかけて、パフォーマンスに影響を与えることがあります。-XX:-UseFatSpinを使用すると、ファット・ロックに対するスピンを無効にし、パフォーマンスへの潜在的な影響を排除することができます。

形式

-XX:+|-UseFatSpin

デフォルト

有効

-XX:+|-UseLargePagesFor[Heap|Code]

このオプションは、JVMのJavaヒープやコードに、可能であればラージ・ページを使用することを有効にします。ラージ・ページを使用すると、アプリケーションでプロセッサ内のTLB(Translation Look-aside Buffer)をより効果的に利用できるようになります。


注意:

このオプションは-XlargePagesオプションの機能と重複します。-XlargePagesオプションのかわりに-XX:+|-UseLargePagesFor[Heap|Code]オプションを使用することをお薦めします。

拡張オプション(-XX:+ForceLargePagesForHeap)を使用すると、十分にラージ・ページを取得できない場合で、-XX:+UseLargePagesForHeapオプションを使用しているときは、JVMを強制的に終了させることができます。


形式

-XX:+|-UseLargePagesFor[Heap|Code]

-XX:+UseLargePagesForHeap

Javaヒープに対するラージ・ページの使用を有効にします。

-XX:+|-UseLazyUnlocking

-XX:+|-UseLazyUnlockingが有効になっていると、重要なセクションの実行が終了してもその時点ではロックは解放されません。そのため、ロックが一度取得された後で、次にそのようなロックを取得しようとするスレッドは、そのロックがすでに解放されているか、または解放可能であることを確認する必要があります。この確認は、最初のスレッドがその時点でまだロックを使用し続けているかどうかを調べることによって行われます。実際の共有ロックは最終的に通常のロックに変換され、これによって共有ロックでのロック操作のパフォーマンスが向上します。

形式

-XX:+|-UseLazyUnlocking

java -XX:-UseLazyUnlocking myApp

遅延ロック解除を無効にします。

デフォルト

遅延ロック解除は、-Xdebugオプションが使用されている場合を除き、すべてのプラットフォームにおいてデフォルトで有効になっています。

例外

このオプションの使用対象として想定されているのは、非共有ロックを多用するアプリケーションです。多数の共有ロックを使用するアプリケーションでは、それらのロックの生存期間が短い場合でも、このオプションを設定するとパフォーマンスの低下を招くことがあります。

-XX:+|-UseLockProfiling

-XX:+|-UseLockProfilingオプションは、JRockitフライト・レコーダでのJavaロックのプロファイリングを有効または無効にします。

Javaロック・プロファイリング・データを取得するには、JRockitフライト・レコーダのロック・イベントも有効にする必要があります。詳細は、『Oracle JRockitフライト・レコーダ・ラン・タイム・ガイド』を参照してください。

形式

-XX:+|-UseLockProfiling

java -XX:+UseLockProfiling myApp

Javaロック・プロファイリングを有効にします。

デフォルト

無効

-XX:+|-UseLowAddressForHeap

このオプションは、Javaヒープに4GBの低いアドレス領域を使用することをJVMに指示します(可能な場合)。

形式

-X:+|-UseLowAddressForHeap

-XX:+UseLowAddressForHeap

Javaヒープに対する低いアドレス領域の使用を有効にします。

デフォルト

有効

-XX:+|-UseNewHashFunction

このオプションは、新規の高速なハッシュ関数がjava.util.HashMapで有効かどうかを指定します。このハッシュ関数では、ハッシュ・スプレッドの向上に伴いパフォーマンスが改善されていますが、HashMapに格納される要素の順序は変更されています。

形式

-X:+|-UseNewHashFunction

-XX:+UseNewHashFunction

新しいハッシュ関数を有効にします。

デフォルト

J2SE 5.0をバンドルするJRockit JVMでは、新しいハッシュ関数はデフォルトで無効です。

関連オプション

-XX:-UseNewHashFunctionで新しいハッシュ関数が明示的に無効にされていないかぎり、-XXaggressiveを指定すると新しいハッシュ関数が有効になります。

-XX:+|-UseThreadPriorities

このオプションでは、java.lang.Thread.setPriority()および関連するAPIを使用して、Javaスレッドの優先順位を制御できます。この機能が無効の場合、これらのAPIを使用しても効果はありません。


警告:

この機能は実験的な機能であり、Oracleは現時点ではこの機能をサポートしていません。この機能を間違って使用すると、深刻なパフォーマンスの問題が発生するおそれがあります。

形式

-XX:+|-UseThreadPriorities

-XX:+UseThreadPriorities

java.lang.Thread.setPriority()および関連するAPIの使用を有効にします。

デフォルト

無効

例外

このオプションを使用できるかどうかはプラットフォームによって異なります。

  • Windows: 使用可能。

  • Linux: 使用可能。ほとんどのLinuxバージョンでは、スレッドの優先順位を使用するにはルート権限が必要です。

  • Solaris: 使用不可。