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

前
 
次
 

2 -Xコマンドライン・オプション

この章は、JRockit JVMで使用できるすべての-Xコマンドライン・オプションに関する、アルファベット順に並んだリファレンスです。

-Xコマンドライン・オプションは、Oracle JRockit JVM専用のオプションです。-Xコマンドライン・オプションを使用すると、様々なJavaアプリケーションのニーズに合せてJRockit JVMの動作を変更できます。これらのオプションは他のJVMでは機能しません(反対に、他のJVMで使用される非標準のオプションはJRockit JVMでは機能しません)。


注意:

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

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

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



-Xbootclasspath
-Xbootclasspath/a
-Xbootclasspath/p
-Xcheck:jni
-Xdebug
-Xgc
-XgcPrio(非推奨)
-XlargePages
-Xmanagement
-Xms
-Xmx
-XnoClassGC(非推奨)
-XnoOpt
-Xns
-XpauseTarget
-Xrs
-Xss
-XstrictFP
-Xverbose
-Xverbosedecorations
-XverboseLog
-XverboseTimeStamp
-Xverify

-Xbootclasspath

-Xbootclasspathオプションは、ブートストラップ・クラスおよびリソースを検索するディレクトリ、JARファイルおよびZIPアーカイブのリストを指定します。これらはJava SE JDKに含まれるブートストラップ・クラス・ファイルのかわりに使用されます。


注意:

rt.jarファイルのクラスをオーバーライドする目的でこのオプションを使用するアプリケーションはデプロイしないでください。これは、Java SE Runtime Environmentバイナリ・コード・ライセンス違反になります。

形式

-Xbootclasspath directories and zips/jars separated by ; (Windows) or : (Linux and Solaris)

-Xbootclasspathオプションは、前述の形式で示すように(キャメル記法ではなく)小文字で入力する必要があります。

関連オプション

-Xbootclasspath/a

ディレクトリ、JARファイルおよびZIPアーカイブのリストを指定するという点で、-Xbootclasspath/aオプションは-Xbootclasspathに似ています。ただし、このリストはデフォルトのブートストラップ・クラス・パスの末尾に付加されます

形式

-Xbootclasspath/a directories and zips/jars separated by ; (Windows) or : (Linux and Solaris)

-Xbootclasspath/aオプションは、前述の形式で示すように(キャメル記法ではなく)小文字で入力する必要があります。

関連オプション

-Xbootclasspath/p

ディレクトリ、JARファイルおよびZIPアーカイブのリストを指定するという点で、-Xbootclasspath/pオプションは-Xbootclasspathに似ています。ただし、このリストはデフォルトのブートストラップ・クラス・パスの先頭に付加されます

形式

-Xbootclasspath/p directories_and_zips/jars_separated_by ; (Windows) or : (Linux and Solaris)

-Xbootclasspath/bオプションは、前述の形式で示すように(キャメル記法ではなく)小文字で入力する必要があります。

関連オプション

-Xcheck:jni

-Xcheck:jniオプションは、JNI関数に対する追加のチェックを有効にします。


注意:

-Xcheck:jniのかわりに-XX:+CheckJNICallsを使用することをお薦めします。

-Xdebug

-Xdebugオプションは、JVM Tools Interface(JVMTI)で使用されるデバッグ機能を有効にします。


注意:

-XdebugはR28で有効ですが、-XX:+JavaDebugをかわりに使用することをお薦めします。

-Xdebugの詳細は、次の場所でOracle JRockit R27のドキュメントを参照してください。

http://download.oracle.com/docs/cd/E13150_01/jrockit_jvm/jrockit/jrdocs/refman/optionX.html


警告:

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

-Xgc

-Xgcオプションは、ガベージ・コレクション・モードの指定を有効にします。

パラレル・マークまたはコンカレント・マークを指定し、パラレル・スイープまたはコンカレント・スイープを使用する、世代別ガベージ・コレクタもしくはシングル・スペース・ガベージ・コレクタを選択できます。

  • 世代別ガベージ・コレクション

    二世代のガベージ・コレクションでは、ヒープが2つのセクション、つまり、古い世代と若い世代(ナーサリ)に分割されます。オブジェクトがナーサリに割り当てられて、ナーサリが一杯になると、JVMはすべてのJavaスレッドを停止し、生存しているオブジェクトを若い世代(ナーサリ)から古い世代に移動します。

  • シングル・スペース・ガベージ・コレクション

    ガベージ・コレクションのシングル・スペース・オプションの場合、すべてのオブジェクトは、経過時間に関係なく、ヒープ上の1つの領域内で生存期間を過ごします。つまり、シングル・スペース・ガベージ・コレクタにはナーサリはありません。

  • コンカレント・マーク・アンド・スイープ・アルゴリズム

    コンカレント・ガベージ・コレクション・アルゴリズムでは、マークとスイープを他のすべての処理とコンカレント(同時)に行います。つまり、Javaスレッドを停止せずに完全なガベージ・コレクションを行います。

  • パラレル・ガベージ・コレクション・マーク・アンド・スイープ・アルゴリズム

    パラレル・ガベージ・コレクション・アルゴリズムでは、ヒープが一杯になったときにJavaスレッドを停止し、すべてのCPUを使ってヒープ全体の完全なマーク・アンド・スイープを行います。パラレル・ガベージ・コレクタではコンカレント・ガベージ・コレクタよりも休止時間が長くなりますが、アプリケーションのスループットが最大になります。このようにパフォーマンスが最大になるため、アプリケーションで長い休止時間を許容できる場合は、シングルCPUマシン上でもパラレル・ガベージ・コレクタをお薦めします。

形式

-Xgc:mode

表2-1に、-Xgcオプションで指定できるガベージ・コレクション・モードの一覧を示します。

表2-1 -Xgcで有効なガベージ・コレクション・モード

モード 説明
singlecon
Alias: singleconcon

シングル・スペース(非世代別)コンカレント・ガベージ・コレクション。

singleconガベージ・コレクション・モードでは、ガベージ・コレクション・タスクのほとんどがJavaアプリケーションと同時に実行されます。すべてのオブジェクトはシングル・スペース(世代)に保持されます。singleconモードではアプリケーションのスループットが低下しますが、休止時間は最小限に維持されます。

gencon
Alias: genconcon

世代別コンカレント・ガベージ・コレクション。

genconガベージ・コレクション・モードでは、オブジェクトが若い世代(ナーサリ)に割り当てられます。ナーサリが一杯になると、JRockit JVMはすべてのJavaスレッドを停止して、若い世代のライブ・オブジェクトを古い世代に移動します。古いコレクションのタスクのほとんどがJavaアプリケーションと同時に実行されます。

小さくて生存期間の短い多数のオブジェクトを割り当てるアプリケーションでは、ほとんどの場合、singleconモードよりもgenconモードの方が適しています。genconモードではヒープ・サイズが増加してアプリケーションのスループットは低下しますが、休止時間は最小限に維持されます。

singlepar
Alias: singleparpar, parallel

シングル・スペース・パラレル・ガベージ・コレクション。

このモードでは、ヒープが一杯になったときにすべてのJavaスレッドが停止し、JVMですべてのCPUが使用されてヒープ全体の完全なガベージ・コレクションが実行されます。

このモードはconcurrentモードよりも休止時間が長くなりますが、アプリケーションのスループットが最大になります。スループットが最大になることから、シングルCPUシステムでもアプリケーションで長い休止時間を許容できる場合は、パラレル・ガベージ・コレクション・モードをお薦めします。

genpar
Alias: genparpar

世代別ガベージ・コレクション。

genparモードでは、オブジェクトは最初に若い世代(ナーサリ)に割り当てられます。ナーサリが一杯になると、JRockit JVMはすべてのJavaスレッドを停止して、パラレルな若いコレクションを実行します。つまり、使用可能なすべてのCPUリソースを利用して、若い世代のライブ・オブジェクトを古い世代に移動します。ヒープが一杯になると、JRockit JVMはすべてのJavaスレッドを停止して、完全なパラレル・コレクションを実行します。このコレクタでは休止時間よりもスループットが優先されます。

一般に、生存期間の短いオブジェクトを多数割り当てるアプリケーションでは、このモードの方がsingleparモードよりも適しています。このモードでは、singleparモードよりもガベージ・コレクションの回数が多くなりますが、個々の休止時間は短縮されるため、結果として古い世代の領域で生じる断片化は少なくなります。

genconpar

世代別ガベージ・コレクション。

コンカレント・マーク・アルゴリズムとパラレル・スイープ・アルゴリズムを使用する世代別(2つの領域の)ガベージ・コレクション・モードを設定します。

genparcon

世代別ガベージ・コレクション。

パラレル・マーク・アルゴリズムとコンカレント・スイープ・アルゴリズムを使用する世代別(2つの領域の)ガベージ・コレクション・モードを設定します。

singleconpar

シングル・スペース・ガベージ・コレクション。

コンカレント・マーク・アルゴリズムとパラレル・スイープ・アルゴリズムを使用するシングル・スペース・ガベージ・コレクション・モードを設定します。

singleparcon

シングル・スペース・ガベージ・コレクション。

パラレル・マークとコンカレント・スイープ・アルゴリズムを使用するシングル・スペース・ガベージ・コレクション・モードを設定します。

throughput

ガベージ・コレクタはアプリケーションのスループットを重視する方向で最適化されます。つまり、ガベージ・コレクタは最大限に効率的に動作し、できるかぎり多くのCPUリソースをJavaスレッドに与えます。しかし、これによって、ガベージ・コレクタがガベージ・コレクションのためにすべてのJavaスレッドを停止すると、非確定的な休止が生じる可能性があります。スループット優先順位は、非確定的な休止がアプリケーションの動作に影響しない場合に使用する必要があります。

pausetime

ガベージ・コレクタはアプリケーションの短い休止時間を重視する方向で最適化されます。つまり、ガベージ・コレクションは、Javaスレッドが休止しないように、必要に応じてJavaアプリケーションと同時に機能します。コンカレント・ガベージ・コレクタは、最適なスループットを得るために使用されるパラレル・ガベージ・コレクタよりも多くのシステム・リソース(CPU時間やメモリー)を必要とするため、アプリケーションのパフォーマンス・オーバーヘッドがわずかに高くなります。デフォルトの目標休止時間は500ミリ秒です。デフォルトの目標休止時間を変更する方法については、「-XpauseTarget」を参照してください。

deterministic

休止時間を非常に短く確定的にするためにガベージ・コレクタを最適化します。

ガベージ・コレクタは、ガベージ・コレクションの休止時間を、指定された休止時間の目標よりも短く維持しようとします。これが成功するかどうかは、アプリケーションとハードウェアによって決まります。低速のハードウェアで、異なるヒープ・サイズまたは大量の実データを使用して実行すると、確定的な動作を維持できなかったり、時間の経過とともにパフォーマンスが低下する可能性があります。高速なハードウェアや、実データが少ない場合は、目標休止時間をより小さな値に設定できます。deterministicモードの目標休止時間のデフォルト値は30ミリ秒で、この値は、コマンドライン・オプションの-XpauseTargetで変更できます。


デフォルト値

デフォルトのガベージ・コレクション・モードはthroughputモードです。

関連オプション

-XXsetGC(非推奨)または-XgcPrio(非推奨)オプションを指定すると、-Xgcオプションがオーバーライドされます。その逆もまた同様です。最初にコマンドラインで指定されたオプションは無視されます。

-XgcPrio(非推奨)

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

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

-XlargePages

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


注意:

ラージ・ページの有効化には-XX:+|-UseLargePagesFor[Heap|Code]オプションを使用することをお薦めします。

形式

-XlargePages:exitOnFailure=true

Windows、LinuxおよびSolarisは、x86およびSPARCアーキテクチャ上で複数のページ・サイズをサポートしています。x86では4KBと4MB(PAEモードでは2KBと2MB)がサポートされます。SPARCでは、モデルに応じて4KBから256MBの範囲の様々なサイズがサポートされます。

デフォルトでは、-XlargePagesオプションが有効になっているときにラージ・ページを取得できない場合、JVMはラージ・ページを使用せずに実行を継続します。ラージ・ページを十分に取得できない場合は、拡張オプション(-XlargePages:exitOnFailure)を使用してこの動作をオーバーライドし、JVMを強制的に終了します。


注意:

このオプションを使用する場合、使用するオペレーティング・システムに適した手順に従ってラージ・ページをシステム上で構成する必要があります。

Linuxのラージ・ページの詳細は、Linuxカーネルのドキュメントに含まれるvm/hugetlbpage.txtファイルを参照してください。

Solarisオペレーティング・システムでは、アプリケーションでのラージ・ページの使用を有効にするための構成は必要ありません。


JRockit JVMがラージ・ページの取得に失敗した場合は、次のような警告が出力されますが、実行は続行されます。

[ERROR][osal ] Unable to set Lock Page Privilege:
...
[WARN ][memory ] Could not acquire large pages for Java heap.
[WARN ][memory ] Falling back to normal page size.

デフォルト

-XlargePagesは、WindowsおよびLinuxプラットフォームではデフォルトで無効になっています。Solaris SPARCでは、このオプションはデフォルトで有効になっています。

-Xmanagement

-Xmanagementオプションは、JRockit JVMと管理サーバーを同時に起動します。また、ネットワーク内のJVMインスタンスの自動検出、SSL暗号化および認証などの機能を、有効にして構成したり、または明示的に無効にすることができます。

形式

-Xmanagement[:parameter1=value[,parameter2=value2]]

表2-6に、parametern=valuenペアの有効な値の一覧を示します。

表2-2 -Xmanagementパラメータ

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

なし

プライベート・インタフェースでパブリッシュされたJMXコネクタを経由するJMXローカル監視を有効にします。このインタフェースは、Attach APIを使用するローカルJMXクライアントで使用されています。JMXクライアントは、エージェントを起動したユーザーと同じユーザーによってコネクタが起動されていれば、このコネクタを使用できます。このコネクタを経由してきたリクエストには、パスワードやアクセス・ファイルは必要ありません。

true

autodiscovery=true|false

リモートJMXコネクタの自動検出を有効または無効にします。自動検出を有効にすると、Oracle JRockit Mission Controlは、マルチキャストベースのJRockit Discovery Protocol(JDP)を通じて、実行中のJRockit JVMインスタンスを自動的に検出できます。自動検出では、同じサブネット上の他のマシンでも、リモート管理対応のJVMを自動的に検出できます。

注意: Oracle JRockit Mission ControlのJVM Browserは、このオプションが有効な場合のみ、リモートJVMインスタンスを自動的に検出します。

関連する-Dオプション: -Dcom.oracle.management.autodiscovery

false

autodiscovery_name=/mycluster/mymachine/Node1

ネットワークで実行中の各種のJRockit JVMインスタンスに関する情報をOracle JRockit Mission Controlが検出できる場所を示す、クラスタおよびノードのパスおよび名前を指定できます。

注意: このオプションは、autodiscoverytrueに設定されている場合のみ、使用できます。

-

authenticate=true|false

認証を有効または無効にします。

このプロパティがfalseに設定されていると、JMXはパスワードやアクセス・ファイルを使用しません。すべてのユーザーがすべてのアクセスを許可されています。

関連する-Dオプション: -Dcom.oracle.management.jmxremote.authenticate

true

class=class_name

クラスがロードされ、JVM起動時の早い段階でそのクラスの空のコンストラクタが呼び出されます。このコンストラクタから、新しいスレッドが起動され、そのスレッドで管理クライアントが実行されます。-Xmanagementclass引数の後には、これ以上引数を指定できません。

-

config_file=path

その他の管理構成プロパティをロードできるファイルの場所を指定します。

関連する-Dオプション: -Dcom.oracle.management.config.file

JRE_HOME/lib/management/management.properties

interface=host|ip

リモート・マシンのIPアドレスまたはホスト名を指定します。

このオプションが設定されている場合は、指定したIP(またはホスト)への接続のみが許可されます。JMXエージェントは引き続き、すべてのインタフェース上の接続をリスニングして応答しますが、このオプションで指定したアドレス以外のアドレスに対する接続は無視されます。

関連する-Dオプション: -Dcom.oracle.management.jmxremote.interface

null

local=true|false

ローカルJMXコネクタを有効または無効にします。

関連する-Dオプション: -Dcom.oracle.management.jmxremote

true

port=portNumber

管理サーバーがリモート・アクセス用に開くポートを指定します。

ポート番号を指定すると、JMXリモート・エージェントが有効になり、指定したポート経由でリスニングするためのリモートJMXコネクタが作成されます。デフォルトで、SSL、パスワードおよびアクセス・ファイルのプロパティがこのコネクタのために使用されます。このオプションではローカル監視も有効になります。

関連する-Dオプション: -Dcom.oracle.management.jmxremote.port

7091(このオプションの値を指定しない場合)

registry_ssl=true|false

RMIコネクタ・スタブを、SSLで保護されたRMIレジストリにバインドします。

関連する-Dオプション: -Dcom.oracle.management.jmxremote.registry.ssl

false

remote=true|false

リモートJMXコネクタを有効または無効にします。

false

rmiserver_port=portNumber

RMIサーバーを、指定したポートにバインドします。

関連する-Dオプション: -Dcom.oracle.management.jmxremote.rmiserver.port

RMIレジストリと同じポートにバインドします。RMIサーバーがSSLを使用中でレジストリはSSLを使用していない場合、ランダム・ポートが選択されます。

ssl=true|false

SSL暗号化を有効または無効にします。

true


java -Xmanagement:ssl=false,authenticate=false myApplication

SSL暗号化および認証を無効にします。

java -Xmanagement:autodiscovery=true myApplication

自動検出を有効にします。

java -Xmanagagement:autodiscovery=true,autodiscovery_name=/mycluster/mymachine/Node1

JRockit JVMは、接続名Node1とともにJDP/mycluster/mymachineフォルダの下に表示されます。パスの末尾にフォワード・スラッシュ(/)を指定すると、生成される記述子の名前がリバースDNS参照によって決められます。

java -Xmanagagement:port=1234 myApplication

管理サーバーにポート1234を開くことを指示します。

ほとんどのJRockit JVMデプロイメントのセキュリティ・リスクおよびミッション・クリティカルな特性により、JRockit JVMの新しいデフォルトの動作では、セキュリティを明示的に無効にするか、または構成してセキュリティを有効にすることが要求されます。これらの手順を実行しないと、管理サーバーはリモート・アクセス用のポートを開きません。また、セキュリティ構成に関するエラー・メッセージが表示され、JVM起動が停止する可能性があります。

-Xmanagementオプションを指定すると、ローカルなメモリー内エージェントも有効になり、開発者の視点から見た場合のユーザー操作が改善されます。たとえば、あるマシンのJRockit JVMでWebLogic Serverインスタンスを実行している開発者は、-Xmanagementオプションを指定することによってローカルなメモリー内エージェントを有効にして、別のマシンのOracle JRockit Mission Control Clientからそのエージェントに接続できます。一方、開発者は、Oracle JRockit Mission Controlからローカル・アクセスするのに-Xmanagementオプションを指定する必要はありません。メモリー内エージェントには、いつでもローカルにアクセスできます。マシン上で複数のJRockit JVMインスタンスが実行しているときにJRockit Mission Control Clientを起動すると、JVMが自動的に検出され、アクセスすることができます。JRockit JVMインスタンスとJRockit Mission Control Clientが同じユーザーによって実行されている場合、このような種類のローカル・アクセスを許可することによってのみ、セキュリティが適用されます。

セキュリティを適用しない管理エージェントを有効にするには、SSLおよび認証を無効にすることを指定する必要があります。

ユーザビリティを最大限に高めるには、自動検出メカニズムも有効にしてください。これによって、JRockit Mission Controlは、マルチキャストベースのJRockit Discovery Protocolを通じて、実行中のJRockit JVMインスタンスを自動的に検出できます。これは通常、ローカル・サブネットでのみ有効です。

デフォルト値

デフォルトの動作は次のとおりです。

  • ローカル・エージェントは有効になります。

  • リモート管理エージェントは、SSL暗号化、認証およびネットワーキングが構成済の場合、セキュリティによって有効になります。SSLおよび認証が未構成の場合、リモート管理エージェントは、セキュリティを明示的に無効にすることで、有効になります。

-Xms

-Xmsオプションでは、Javaヒープの初期サイズと最小サイズを設定します。Javaヒープ(ヒープ)は、メモリーのブロックがオブジェクトに割り当てられ、ガベージ・コレクション時に解放されるメモリーの部分です。


注意:

-Xmsオプションでは、JVMで使用できるメモリーの合計は制限されません。

形式

-Xms:size[g|G|m|M|k|K]

-Xmsをメモリー値と組み合せて、単位を追加します。

java -Xms:64m myApp

このコマンドはJavaヒープの初期サイズと最小サイズを64MBに設定します。

単位を追加しないと、そのままの値として解釈されます。たとえば、64は64バイトとして解釈されます。64MBや64KBにはなりません。

パフォーマンスを向上するには、-Xmsオプションを最大ヒープ・サイズと同じサイズに設定します。例:

java -Xmx:64m -Xms:64m myApp

デフォルト値

このオプションを設定しない場合、Javaヒープの最小サイズは(実行中のモードに応じて)デフォルトで次のように設定されます。

  • -server モード: システムの空き物理メモリー量の25%、最大64MB、最小8MB。

  • -client モード: システムの空き物理メモリー量の25%、最大16MB、最小8MB。

  • ナーサリのサイズが-Xnsオプションで設定されている場合、デフォルトの初期ヒープ・サイズは、ナーサリのサイズの少なくとも2倍にスケール・アップされます。

例外と推奨事項

Javaヒープの初期サイズを、最小サイズの8MBより小さい値に設定することはできません。このオプションを8MBより小さい値に設定すると、JRockit JVMがエラー・メッセージを出力して終了します。

-Xmsの値は、-Xmx(Javaヒープの最大サイズ)に設定された値を超えることはできません。

-Xmx

-Xmxオプションでは、Javaヒープの最大サイズを設定します。Javaヒープは、メモリーのブロックがオブジェクトに割り当てられ、ガベージ・コレクション時に解放されるメモリーの部分です。実行中のオペレーティング・システムの種類によって、Javaヒープに設定できる最大値は異なります。


注意:

-Xmxオプションでは、JVMで使用できるメモリーの合計は制限されません

形式

-Xmx:size[g|G|m|M|k|K]

-Xmxオプションをメモリー値と組み合せます。

java -Xmx:1g myApp

このコマンドはJavaヒープの最大サイズを1GBに設定します。

単位を追加しないと、そのままの値として解釈されます。たとえば、64は64バイトとして解釈されます。64MBや64KBにはなりません。

-Xmxオプションと-Xmsオプションを組み合せて使い、Javaヒープ・サイズを制限します。Javaヒープが-Xmxより大きいサイズになることはありません。また、-Xms値を最小ヒープ・サイズとして使用し、固定のヒープ・サイズを設定できます。たとえばベンチマーク・テストを実行する場合には、-Xms = -Xmxのように設定します。

デフォルト値

このオプションを設定しない場合、Javaヒープの最大サイズは、表2-3に示すように、プラットフォームとシステム内のメモリーの量に応じて異なります。

表2-3 デフォルトの最大ヒープ・サイズ

プラットフォーム デフォルトの最大ヒープ・サイズ

64ビット・プラットフォームでのWindows

合計物理メモリーの75%、最大3GB

64ビット・プラットフォームでのLinuxまたはSolaris

物理メモリーの75%、最大3GB

32ビット・プラットフォームでのWindows

合計物理メモリーの75%、最大1 GB

32ビット・プラットフォームでのLinuxまたはSolaris

物理メモリーの75%、最大1GB


例外

-Xmxを使用する場合は、次の例外に注意してください。

  • -Xmx-Xmsの両方を指定する場合、-Xmxの値は、-Xmsの値以上にする必要があります。

  • -Xmx-Xnsの両方を指定する場合、-Xmxの値は、-Xnsの値以上にする必要があります。

  • -Xmxの最小値は16MBです。

-XnoClassGC(非推奨)

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

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

-XnoOpt

-XnoOptオプションは、適応性のある最適化を無効にします。

通常、最適化されたコードは、最適化されていないコードより高速に実行されますが、コードを最適化するのに要する時間が、望ましくない処理の遅れを引き起こすことがあります。-XnoOptを指定すると、最適化を無効にすることによって、このような遅延を回避できます。このオプションは、システム・クラッシュや起動時のパフォーマンス不足など、JVMまたはアプリケーションの問題が最適化に関係しているおそれがある場合にも役立ちます。最適化を無効にして、アプリケーションを再実行してみてください。正常に動作する場合は、コードの最適化に問題があると判断できます。

-XnoOptを設定しない場合、コードは通常どおりに最適化されます。

形式

-XnoOpt

-Xns

-Xnsオプションはナーサリ・サイズを設定します。JRockit JVMでナーサリが使用されるのは、世代別ガベージ・コレクタを使用しているときです。

形式

-Xns:size[g|G|m|M|k|K]

-Xnsをメモリー値と組み合せます。

ナーサリ・サイズの値は、ヒープに設定された最大値を超えることはできません。

java -Xns:10m myApp

ナーサリをヒープの10MBに設定します。

デフォルト値

表2-4に示すように、デフォルト値はガベージ・コレクション・モードによって異なります。

表2-4 デフォルトのナーサリ・サイズ

使用オプション デフォルト値

-server(デフォルト)

空きヒープの50%

-client

なし(ナーサリが存在しない)

-Xgc:gencon、-Xgc:pausetime

論理プロセッサごとに10MB(最大80MB)

-Xgc:genpar、-Xgc:throughput

空きヒープの50%


例外

-Xnsオプションは、世代別ガベージ・コレクタを使用している場合のみ有効です。

-XpauseTarget

-XpauseTargetオプションでは、短い休止時間を最適化するガベージ・コレクション・モード(-Xgc:pausetime)と確定的な休止時間を最適化するガベージ・コレクション・モード(-Xgc:deterministic)の目標休止時間を設定します。目標値が休止時間の目標として使用されます。目標を設定することで、ガベージ・コレクタは自身をより正確に構成し、休止時間を目標値に近づけることができます。このオプションを使用すると、1ミリ秒から5秒の間で目標休止時間を指定できます。確定的ガベージ・コレクタを使用する場合は、値を200ミリ秒未満に設定できます。

形式

-XpauseTarget=value

このオプションで設定する値は、柔軟な目標と見なされることに注意してください。つまり、目標を100ミリ秒に指定した場合、ガベージ・コレクタは休止時間が100ミリ秒にできるだけ近づくような構成を目指して自身をチューニングします。しかし、ガベージ・コレクタをチューニングした後でも、この目標を実現できないアプリケーションおよびヒープ構成を使用している場合は、目標が守られません。このオプションは目標休止時間を指定するだけで、最大許容休止時間を指定するわけではありません。

このオプションを正しく使用すれば、休止時間が改善されます。しかし正しく使用しないと、ガベージ・コレクタの動作に異常が起きることがあります。

デフォルト値

-Xgc:pausetimeで-XpauseTargetを使用している場合、デフォルトの目標の設定は500ミリ秒です。-Xgc:deterministicを使用している場合、デフォルト値は30ミリ秒です。

関連オプション

通常、このオプションは休止時間を最適化するガベージ・コレクション・モード(-Xgc:pausetimeまたは-Xgc:deterministic)で使用する必要があります。ガベージ・コレクタを指定しない場合は、このオプションによってデフォルトのガベージ・コレクタが変更され、休止時間を最適化するガベージ・コレクタ(-Xgc:pausetimeを指定したときと同じコレクタ)が使用されます。

Oracle JRockit Real Timeを使用している場合は、-XgcPauseTargetを200ミリ秒未満に設定して、ガベージ・コレクタは指定しないでください。ガベージ・コレクタは-Xgc:deterministic.に設定されます。

例外

-XpauseTargetを使用する場合は、次の例外に注意してください。

  • ガベージ・コレクタをthroughputモードで実行中の場合、-XpauseTargetを設定しても効果はありません。

  • 確定的ガベージ・コレクタを使用中の場合、目標休止時間も同様に200ミリ秒未満に指定できます。

-Xrs


注意:

-Xrsは、HotSpot JVMの非標準オプションです。JRockit JVMでは、このオプションが引き続きサポートされます。ただし、JRockit JVMの非標準オプションの-Xnohupおよび-XX:+|-ReduceSignalUsageで同じ機能が提供されています。

-Xrsは、JVMによるオペレーティング・システム・シグナルの使用を減らします。JVMをサービスとして実行している場合(Webサーバーのサーブレット・エンジンなど)、JVMはCTRL_LOGOFF_EVENTを受け取ることがありますが、停止処理を開始すべきではありません。オペレーティング・システムが実際にはプロセスを終了させないからです。このような障害を回避するために、-Xrsコマンドライン・オプションは、コンソール制御ハンドラをインストールしません - つまり、CTRL_C_EVENTCTRL_CLOSE_EVENTCTRL_LOGOFF_EVENT、またはCTRL_SHUTDOWN_EVENTの監視および処理は行われません。

形式

-Xrs

JRockit JVMをサービスとして実行している場合(Webサーバーのサーブレット・エンジンなど)、起動時にこのコマンドを入力すると、JVMはCTRL_LOGOFF_EVENTイベントまたはSIGHUPイベントの監視も処理も行わなくなります。

例外

このオプションを使用する場合の例外は次のとおりです。

  • 「Ctrl」+「Break」を押してもスレッド・ダンプは生成されません。

  • 停止フックの実行はユーザー・コードで行う必要があります。

-Xss

-Xssオプションでは、スレッド・スタック・サイズを設定します。スレッド・スタックは、各Javaスレッドが内部的に使用するために割り当てられるメモリー領域です。ここにスレッドのローカルの実行状態が格納されます。

形式

-Xss:size[g|G|m|M|k|K]

-Xssをメモリー値と組み合せます。


注意:

JRockitは128MBを超えるスタック・サイズをサポートしません。

java -Xss:512k myApp

デフォルトのスタック・サイズを512KBに設定します。

デフォルト値

-Xssのデフォルト値は、 表2-5に示すようにJVMバイナリに固有です。

表2-5 -Xssのデフォルト値

プラットフォーム デフォルト

Windows IA32

64KB

Windows x86_64

128KB

Linux IA32

128KB

Linux x86_64

256KB

Solaris SPARC

512KB


-XstrictFP

-XstrictFPのかわりに-XX:+StrictFPを使用することをお薦めします。

-XstrictFPの詳細は、次の場所でR27のドキュメントを参照してください。http://download.oracle.com/docs/cd/E13150_01/jrockit_jvm/jrockit/jrdocs/refman/index.html

-Xverbose

-Xverboseオプションは、システムに関する固有の情報を提供します。デフォルトでは、エラー・メッセージ用の標準出力(stderr)に出力されますが、-XverboseLogコマンドライン・オプションを使用してファイルにリダイレクトすることもできます。表示される情報は、オプションとともに指定するパラメータによって異なります。たとえば、パラメータcpuinfoを指定すると、CPUに関する情報が表示され、ハイパースレッディングが有効かどうかをJVMが判断できるかどうかがわかります。

形式

-Xverbose:parameter[=log_level]

表2-6はパラメータの一覧を、表2-7はログ・レベルの一覧を示します。


注意:

複数のパラメータを使用する場合はカンマで区切ります(例: -Xverbose:gc,opt)。

表2-6 -Xverboseのパラメータ

パラメータ 画面への出力

alloc

割当ておよびメモリー不足に関する情報。

class

ロードされたクラスの名前: サンプル出力は次のようになります。

[INFO ][class ] created: # 0 java/lang/Object (c:\jrockits\R28.0.0_R28.0.0-617_1.6.0\jre\lib\rt.jar)
[INFO ][class ] 0 java/lang/Object success (0.60 ms) 
[INFO ][class ] created: # 2 java/io/Serializable (c:\jrockits\R28.0.0_R28.0.0-617_1.6.0\jre\lib\rt.jar)
[INFO ][class ] 2 java/io/Serializable success (0.32 ms)
codegen

コンパイルされる各メソッドの名前。codegenの冗長出力は次のようになります。

[INFO ][codegen][00004] #240 (Normal) java/lang/AbstractStringBuilder.<init>(I)V
[INFO ][codegen][00004] #240 0.315-0.316 0x0000000100019FA0-0x0000000100019FD2 0.38 ms 128KB 31618 bc/s (138.48 ms 60442 bc/s)
[INFO ][codegen][00004] #241 (Normal) java/lang/StringBuilder.append(Ljava/lang/String;)Ljava/lang/StringBuilder;
[INFO ][codegen][00004] #241 0.316-0.316 0x0000000100019FE0-0x0000000100019FF5 0.37 ms 128KB 21503 bc/s (138.85 ms 60338 bc/s)
[INFO ][codegen][00004] #242 (Normal) java/lang/AbstractStringBuilder.append(Ljava/lang/String;)Ljava/lang/AbstractStringBuilder;
[INFO ][codegen][00004] #242 0.317-0.317 0x000000010001A000-0x000000010001A07E 0.53 ms 128KB 113605 bc/s (139.38 ms 60539 bc/s)
[INFO ][codegen][00004] #243 (Normal) java/lang/StringBuilder.append(C)Ljava/lang/StringBuilder;
[INFO ][codegen][00004] #243 0.318-0.318 0x000000010001A080-0x000000010001A09C 0.37 ms 128KB 21747 bc/s (139.75 ms 60437 bc/s)
compaction

圧縮に関する情報。この情報はガベージ・コレクションの各タイプによって、また圧縮の結果によって異なります。compactionの冗長出力は次のようになります。

[INFO ][compact] [OC#2] Compacting 8 of 128 parts at index 0. Compaction type is internal. Exceptional: No.
[INFO ][compact] [OC#2] Compaction area start: 0x2043000, end: 0x263a800.Timeout: 100.000 ms.
[INFO ][compact] [OC#2] Compactset limit (per thread): 37487 (dynamic), not using matrixes.
[INFO ][compact] [OC#2] Adjusted compaction area to start at 0x2043000 and end at 0x263a8d8.
[DEBUG][compact] [OC#2] Internal compaction added 0x25f24f8 - 0x263a8d8 to
the freelist, size: 289KB.
[INFO ][compact] [OC#2] Internal compaction found 5698 objects and moved 5681
objects.
[INFO ][compact] [OC#2] Compaction overhead increased to: 3.000.
[INFO ][compact] [OC#2] Compaction pause: 3.677 ms (target 50.000 ms), update
ref pause: 119.897 ms (target 50.000 ms).
[INFO ][compact] [OC#2] Updated 518 references. Internal: 6125  External:
518.
[DEBUG][compact] [OC#2] Compaction ended at index 5, object end address was
0x263a8d8.
[INFO ][compact] [OC#2] Average compact time ratio: 0.022901.
[INFO ][compact] [OC#2] Too few references, doubling compact ratio.
cpuinfo

使用中のCPUに関する技術的な情報。cpuinfoの冗長出力は次のようになります。

[INFO ][cpuinfo] HT is: not supported by the CPU, not enabled by the OS, not enabled in JRockit.
[INFO ][cpuinfo] CPU:       Intel Pentium M model D SSE SSE2
[INFO ][cpuinfo] Vendor:    GenuineIntel
[INFO ][cpuinfo] Family:    Pentium M model D
[INFO ][cpuinfo] Model:     Pentium M model D
[INFO ][cpuinfo] Name:      Intel(R) Pentium(R) M processor 2.00GHz
[INFO ][cpuinfo] Sockets:   1
[INFO ][cpuinfo] Cores:     1
[INFO ][cpuinfo] HWThreads: 1
[INFO ][cpuinfo] Supports:  On-Chip FPU
[INFO ][cpuinfo] Supports:  Virtual Mode Extensions
[INFO ][cpuinfo] Supports:  Debugging Extensions
[INFO ][cpuinfo] Supports:  Page Size Extensions
[INFO ][cpuinfo] Supports:  Time Stamp Counter
[INFO ][cpuinfo] Supports:  Model Specific Registers
[INFO ][cpuinfo] Supports:  Machine Check Exceptions
[INFO ][cpuinfo] Supports:  CMPXCHG8B Instruction
[INFO ][cpuinfo] Supports:  Fast System Call
[INFO ][cpuinfo] Supports:  Memory Type Range Registers
[INFO ][cpuinfo] Supports:  Page Global Enable
[INFO ][cpuinfo] Supports:  Machine Check Architecture
[INFO ][cpuinfo] Supports:  Conditional Mov Instruction
[INFO ][cpuinfo] Supports:  Page Attribute Table
[INFO ][cpuinfo] Supports:  the CLFLUSH Instruction
[INFO ][cpuinfo] Supports:  the Debug Trace Store feature
[INFO ][cpuinfo] Supports:  ACPI registers in MSR space
[INFO ][cpuinfo] Supports:  Intel Architecture MMX Technology
[INFO ][cpuinfo] Supports:  Fast Float Point Save and Restore
[INFO ][cpuinfo] Supports:  Streaming SIMD extensions
[INFO ][cpuinfo] Supports:  Streaming SIMD extensions 2
[INFO ][cpuinfo] Supports:  Self-Snoop
[INFO ][cpuinfo] Supports:  Thermal Monitor

exceptions

例外の型とメッセージを表示します(一般的な型の例外は対象外)。exceptionsの冗長出力は次のようになります。

[excepti][00002] java/lang/NumberFormatException: null

exceptions=debug

例外の型とメッセージを表示します(一般的な型の例外は対象外)。スタック・トレースも表示します。exceptions=debugの冗長出力は次のようになります。

[excepti][00002] java/lang/NumberFormatException: null
    at java/lang/Integer.parseInt(Ljava/lang/String;I)I(Integer.
       java:415)
    at java/lang/Integer.<init>(Ljava/lang/String;)V(Integer.
       java:620)
    at sun/net/InetAddressCachePolicy.<clinit>()V
       (InetAddressCachePolicy.java:77)
    at jrockit/vm/RNI.c2java(IIII)V(Native Method)
    at jrockit/vm/RNI.generateFixedCode(I)I(Native Method)
    at java/net/InetAddress.<clinit>()V(InetAddress.java:640)
    at jrockit/vm/RNI.c2java(IIII)V(Native Method)
    at jrockit/vm/RNI.generateFixedCode(I)I(Native Method)
    at java/net/InetSocketAddress.<init>(Ljava/lang/String;I)V
       (InetSocketAddress.java:124)
    at java/net/Socket.<init>(Ljava/lang/String;I)V
       (Socket.java:178)
    at Ex.main([Ljava/lang/String;)V(Ex.java:5)
    at jrockit/vm/RNI.c2java(IIII)V(Native Method)
    --- End of stack trace

exceptions=trace

debugの場合と同じ情報を表示しますが、一般的な型の例外も表示対象となります。exceptions=traceの冗長出力は-Xverbose:exceptions=debugを指定した場合と同様ですが、次の型の例外の情報も出力されます。

  • java.util.EmptyStackException

  • java.lang.ClassNotFoundException

  • java.security.PrivilegedActionException

gc

メモリー・システムに関する情報を次の形式で表示します。

    [INFO][memory ] <start>-<end>: <type> <before>KB-><after>KB (<heap>KB), <time> ms, sum of pauses <pause> ms.
    [INFO][memory ] <start>  - start time of collection (seconds since jvm start).
    [INFO][memory ] <type>   - OC (old collection) or YC (young collection).
    [INFO][memory ] <end>    - end time of collection (seconds since jvm start).
    [INFO][memory ] <before> - memory used by objects before collection (KB).
    [INFO][memory ] <after>  - memory used by objects after collection (KB).
    [INFO][memory ] <heap>   - size of heap after collection (KB).
    [INFO][memory ] <time>   - total time of collection (milliseconds).
    [INFO][memory ] <pause>  - total sum of pauses during collection (milliseconds).
    

次に例を示します。

    [INFO][memory] [YC#1] 0.749-0.992: YC 32768KB->32770KB (65536KB), 0.242 s, sum of pauses 242.279 ms, longest pause 242.279 ms.
    [INFO][memory] [YC#2] 1.029-1.221: YC 57344KB->65536KB (65536KB), 0.191 s, sum of pauses 191.391 ms, longest pause 191.391 ms.
    [INFO][memory] [OC#1] 1.221-1.305: OC 65536KB->57169KB (102512KB), 0.085 s, sum of pauses 83.469 ms, longest pause 83.469 ms.
    [INFO][memory] [YC#3] 1.334-1.343: YC 65118KB->60949KB (102512KB), 0.009 s, sum of pauses 8.534 ms, longest pause 8.534 ms.
   

gcheuristic

ガベージ・コレクションのヒューリスティックで行われる判断と、ヒープ・サイズの変更に関する情報。

gcpause

実行中にガベージ・コレクタによって発生した休止時間を出力します。休止時間はアプリケーションの実行中に画面で実行時に表示されます。このオプションは起動時に使用します。休止時間が発生すると、レポートが出力されます。

-Xgc:genconとともに使用される-Xverbose:gcpauseからの出力:

[INFO ][gcpause] [YC#92] [---] 4.145 ms (26.121000-26.125000) YC
[INFO ][gcpause] [YC#92] [con] 0.003 ms (26.121000-26.121000) YC:PreGC
[INFO ][gcpause] [YC#92] [pau] 4.095 ms (26.121000-26.125000) YC:Main
[INFO ][gcpause] [YC#92] [con] 0.008 ms (26.125000-26.125000) YC:PostGC
[INFO ][gcpause] [YC#93] [---] 4.710 ms (26.352000-26.356000) YC
[INFO ][gcpause] [YC#93] [con] 0.002 ms (26.352000-26.352000) YC:PreGC
[INFO ][gcpause] [YC#93] [pau] 4.644 ms (26.352000-26.356000) YC:Main
[INFO ][gcpause] [YC#93] [con] 0.009 ms (26.356000-26.356000) YC:PostGC
[INFO ][gcpause] [OC#1] [---] 63.312 ms (26.362000-26.425000) OC
[INFO ][gcpause] [OC#1] [con] 0.006 ms (26.362000-26.362000) OC:PreGC
[INFO ][gcpause] [OC#1] [pau] 4.979 ms (26.362000-26.367000) OC:Initial
[INFO ][gcpause] [OC#1] [con] 50.462 ms (26.367000-26.417000) OC:ConcurrentMark
[INFO ][gcpause] [OC#1] [pau] 4.427 ms (26.417000-26.422000) OC:Main
[INFO ][gcpause] [OC#1] [con] 0.829 ms (26.422000-26.422000) OC:ConcurrentSweep1
[INFO ][gcpause] [OC#1] [pau] 0.011 ms (26.422000-26.422000) OC:SweepSwitch
[INFO ][gcpause] [OC#1] [con] 1.137 ms (26.422000-26.424000) OC:ConcurrentSweep2
[INFO ][gcpause] [OC#1] [pau] 0.224 ms (26.424000-26.424000) OC:Cleanup
[INFO ][gcpause] [OC#1] [con] 0.982 ms (26.424000-26.425000) OC:PostGC
[INFO ][gcpause] [YC#94] [---] 4.738 ms (26.720000-26.725000) YC
[INFO ][gcpause] [YC#94] [con] 0.003 ms (26.720000-26.720000) YC:PreGC
[INFO ][gcpause] [YC#94] [pau] 4.692 ms (26.720000-26.725000) YC:Main
[INFO ][gcpause] [YC#94] [con] 0.007 ms (26.725000-26.725000) YC:PostGC

gcpausetree

gcpauseと同じ情報を出力しますが、全レベルの情報ではなくインデント付きで表示されるため、出力結果が読みやすくなります。ただし、この出力の解析性は低くなります。

gcreport

アプリケーションのガベージ・コレクション統計を示すレポートを生成します。このレポートを使用して、最も効果的なガベージ・コレクタを使用しているかどうかを判断できます。レポートでは統計が若いコレクションと古いコレクションに分類され、各タイプについて実行時に収集された次の情報が表示されます。

  • コレクションの数: このタイプのガベージ・コレクションの総数。

  • 合計昇格数: このタイプのガベージ・コレクションによって若い領域から古い領域に昇格されたオブジェクトの総数と総バイト数。

  • 最大昇格数: このタイプの単一のガベージ・コレクションによって昇格されたオブジェクトの最大数と最大バイト数。

  • GC合計時間: このタイプのガベージ・コレクションにかかった合計時間。コンカレント・ガベージ・コレクションの場合は、ガベージ・コレクションの合計時間とガベージ・コレクションの一時停止の合計時間が異なります。

  • 平均GC時間: このタイプの単一のガベージ・コレクションにかかった平均時間。コンカレント・ガベージ・コレクションの場合は、ガベージ・コレクションの時間とガベージ・コレクションの一時停止の時間が異なります。

  • GCの一時停止の最長時間: このタイプのガベージ・コレクションによって発生した最も長い3つのガベージ・コレクションの一時停止の時間。

-Xgcprio:pausetimeとともに使用される-Xverbose:gcreportからの出力:

[INFO ][gcrepor]
[INFO ][gcrepor] Memory usage report:
[INFO ][gcrepor]
[INFO ][gcrepor] Young Collections:
[INFO ][gcrepor] number of collections = 1674.
[INFO ][gcrepor] total promoted = 125334074 (size 4556008384).
[INFO ][gcrepor] max promoted = 672140 (size 29971808).
[INFO ][gcrepor] total YC time = 12.959 s (total paused 12.810 s).
[INFO ][gcrepor] mean YC time = 7.741 ms (mean total paused 7.652 ms).
[INFO ][gcrepor] maximum YC Pauses = 38.941 , 40.473, 63.004 ms.
[INFO ][gcrepor]
[INFO ][gcrepor] Old Collections:
[INFO ][gcrepor] number of collections = 828.
[INFO ][gcrepor] total promoted = 37563437 (size 1393626896).
[INFO ][gcrepor] max promoted = 328350 (size 14209984).
[INFO ][gcrepor] total OC time = 349.090 s (total paused 83.380 s).
[INFO ][gcrepor] mean OC time = 421.606 ms (mean total paused 100.701 ms).
[INFO ][gcrepor] maximum OC Pauses = 445.945 , 446.394, 3096.186 ms.
[INFO ][gcrepor]
[INFO ][gcrepor] number of emergency parallel sweeps = 361.
[INFO ][gcrepor]
[INFO ][gcrepor] number of internal compactions = 582.
[INFO ][gcrepor] number of internal compactions skipped because pointer storage overflowed = 8.
[INFO ][gcrepor] number of external compactions = 234.
[INFO ][gcrepor] 177 of these were aborted because they timed out.
[INFO ][gcrepor] number of external compactions skipped because pointer storage overflowed = 4.
[INFO ][gcrepor]
load

ロードされた各Javaまたはネイティブ・ライブラリの名前。

[INFO ][load ] opened zip c:\jrockits\R28.0.0_R28.0.0-617_1.6.0\jre\lib\rt.jar
[INFO ][load ] opened zip c:\jrockits\R28.0.0_R28.0.0-617_1.6.0\jre\lib\resources.jar
[INFO ][load ] opened zip c:\jrockits\R28.0.0_R28.0.0-617_1.6.0\jre\lib\jsse.jar
[INFO ][load ] opened zip c:\jrockits\R28.0.0_R28.0.0-617_1.6.0\jre\lib\jce.jar
[INFO ][load ] opened zip c:\jrockits\R28.0.0_R28.0.0-617_1.6.0\jre\lib\charsets.jar

memory

メモリー管理システムに関する次のような情報を出力します。

  • コレクションの開始時間(JVMが起動してからの秒数)

  • コレクションの終了時間(JVMが起動してからの秒数)

  • コレクション前にオブジェクトで使用されているメモリー(KB)

  • コレクション後にオブジェクトで使用されているメモリー(KB)

  • コレクション後のヒープ・サイズ(KB)

  • コレクションの合計時間(秒数またはミリ秒数)

  • コレクション中の合計休止時間(ミリ秒数)

-Xverbose:memoryで出力される情報は、使用中のガベージ・コレクタのタイプによって異なります。

memdbg

メモリー関連の問題をデバッグする際に役立つ、冗長モジュールのdebugレベルを有効にします。memdbgの冗長出力は次のようになります。

[DEBUG][memory ] [YC#3526] GC reason: Allocation request failed.
[DEBUG][memory ] [YC#3526] 455.018: YC started.
[INFO ][alloc ] [YC#3526] Pending requests at 'Before YC' - Total: 8, TLAs: 8 (approx 262144 bytes), objects: 0 (0 bytes). Max age: 0.
[INFO ][nursery] [YC#3526] Young collection 3526 started. This YC is running while the OC is in phase: not running.
[DEBUG][memory ] [YC#3526] Promotion failed: not enough free memory for java/lang/String, 32 B.
[DEBUG][memory ] [YC#3526] Returning duplicate cardTablePart entry 2895 (0x00000000155EDE00-0x000000001562DE00)
[DEBUG][memory ] [YC#3526] Returning duplicate cardTablePart entry 2895 (0x00000000155EDE00-0x000000001562DE00)
[DEBUG][memory ] [YC#3526] SemiRef phase Finalizers run in single threaded mode.
[DEBUG][memory ] [YC#3526] SemiRef phase WeakJNIHandles run in single threaded mode.
[DEBUG][memory ] [YC#3526] SemiRef phase ClassConstraints run in single threaded mode.
[INFO ][nursery] [YC#3526] Setting forbidden area for keeparea: 0x00000000133479A0-0x000000001386DE20.
[INFO ][nursery] [YC#3526] Next keeparea will start at 0x0000000012F34E48 and end at 0x00000000133479A0.
[INFO ][alloc ] [YC#3526] Pending requests at 'After YC' - Total: 8, TLAs: 8 (approx 262144 bytes), objects: 0 (0 bytes). Max age: 0.
[DEBUG][memory ] [YC#3526] YC promoted 10964 objects (384KB).
[DEBUG][memory ] [YC#3526] Page faults before YC: 283554, page faults after YC: 283554, pages in heap: 65536.
[DEBUG][memory ] [YC#3526] Nursery size after YC: 0KB. (Free: 0KB Parts: 0)
[INFO ][memory ] [YC#3526] 455.018-455.033: YC 261708KB->262144KB (262144KB), 0.015 s, sum of pauses 14.090 ms, longest pause 14.090 ms.
opt

最適化されるすべてのメソッドの情報。optの冗長出力は次のようになります。

[INFO ][opt ][00036] #1 (Opt) ObjAlloc.main([Ljava/lang/String;)V
[INFO ][opt ][00036] #1 3.756-3.758 0x0000000100060000-0x000000010006004E 2.10 ms 128KB 7633 bc/s (2.10 ms 7633 bc/s)

refobj

ガベージ・コレクションごとの参照オブジェクトとハンドルに関する情報。出力では、様々な種類の参照オブジェクトと、そのうちのいくつがアクティブ化されているかの要約が示されます。参照オブジェクトは、その参照オブジェクトの種類の要件が満たされたときにアクティブ化されます。アクティブ化されると、メモリー管理システムが、参照の種類に応じて、オブジェクトを参照キューに入れるか、ファイナライズを待機するキューに入れます。

このログ・モジュールのinfoレベルのパフォーマンス・オーバーヘッドは小さい。debugレベルのパフォーマンス・オーバーヘッドは大きい。

starttime

JRockit JVMが起動されたときのSystem.currentTimeMillis()およびSystem.nanoTime()の値。これらを使用すると、異なるプロセス間のログ出力を相関させることができます。starttimeの冗長出力は次のようになります。

[INFO ][startti] VM start time: 1260962573921 millis 6922526 nanos 18442244770397334 ticks

説明:

  • millisは、1970年1月1日0時(協定世界時)からの経過時間(ミリ秒単位)。この値は、System.currentTimeMills()が返す値と同じです。

  • nanosは、10億分の1秒(ナノ秒)の単位で時間を測定します。ただし、オペレーティング・システムごとに最も効率的な測定方法を使用できるように、nanoTime()の測定開始時刻は指定されていません。この値は、System.nanoTime()が返す値と同じです。

shutdown

JVMの正常な終了をトリガーしたイベントに関する情報(すべてのプラットフォームまたは条件下で動作することは保証されていません)。このパラメータはR28.3.2以降使用可能です。

次の出力は、Signal 15 (SIGTERM)をSolarisシステム上で受信した場合の冗長停止レポートの例です。

[INFO ][shutdow] JVM_Halt() called in response to:
[INFO ][shutdow] Signal 15 received from PID:21152 UID:142

systemgc

System.gc()および-Xverbose:memdbgの呼出しによってガベージ・コレクションに対する通知が開始されます。たとえば、ガベージ・コレクションを暗黙的に開始するJMAPI関数の呼出しや、診断コマンドrunsystemgcの呼び出しなどがあります。

System.gc()の直接呼出しによって開始されるガベージ・コレクションは、次のような冗長出力になります。

[INFO ][sysgc  ] GC requested by thread 1

この出力のスレッド番号は、ガベージ・コレクションをリクエストするスレッドのスレッドIDです。

その他の方法によって開始されるガベージ・コレクションの出力には、ガベージ・コレクションの理由が次のように表示されます。

[INFO ][sysgc ] GC triggered for reason: Set Nursery Size

timing

タイマーの時間単位と、時間値を取得するために使用されるメソッド。これは、System.nanoTime()メソッドによって使用されるタイマーの時間単位です。

Windowsでの冗長タイミング・レポートの出力例は次のとおりです。

[INFO ][timing ] Fast time frequency is 1995000000hz
[INFO ][timing ] Drift is 0.00000021 = per day 0.018secs (max 300.000)
[INFO ][timing ] Hardware fast time enabled
[INFO ][timing ] Counter timer using resolution of 1995MHz 

表2-7 Xverboseのログ・レベル

ログ・レベル 説明
quiet

ログなし。メッセージもエラーも生成されません。

error

エラー・メッセージだけがログに記録されます。

warn

エラーに加えて警告メッセージもログに記録されます。まだ低レベルのログ・レベルであり、warnは通常、後でエラーを引き起こすおそれがあるイベントを警告するのに使用されます。

info

infoレベルでは、エラーと警告が記録されるだけでなく、JRockit JVMの現在の状態や各種のJVMイベントに関する情報メッセージもログに記録されます。これは、引数を指定せずに-Xverboseを使用する場合のデフォルトのログ・レベルです。

debug

debug はJRockit JVMの動作の詳細な情報でメッセージを登録します。通常、debugが提供する情報は日常のログとしては過多ですが、デバッグには役立ちます。

trace

traceを指定すると、非常に冗長なログが記録されます。このレベルは、デバッグ・レベルが生成する情報でも問題が解決できないモジュールで使用します。一般に、traceは、1分あたり最大10 - 100ページ分のテキストを記録する必要がある場合に使用します。


java -Xverbose:gcpause=debug myClass

実行時の休止時間のサンプリングと情報の表示が有効になり、JRockit JVMの詳細な情報とともにメッセージが記録されます。

関連オプション

-Xverboseを設定しないと、次のオプションは機能しません。

-Xverbosedecorations

デコレーションは、冗長な出力にさらに意味を持たせるために使用される、通常はシステム関連の追加情報です。メッセージの生成元のモジュールの名前や、現在のJRockit JVMセッションが開始してからの経過時間(ミリ秒単位)などがその例です。-Xverbosedecorationsオプションはこの情報を冗長出力に追加します。

形式

-Xverbosedecorations=decoration names

注意:

診断コマンドverbosityと引数decorationsをともに使用することもできます。

表2-8は可能なデコレーションの一覧を示します。

表2-8 冗長出力のデコレーション

デコレーション 説明
level

メッセージのログ・レベルを出力します。

millis

1970年1月1日0時(協定世界時)からの経過時間(ミリ秒単位)を出力します。この値は、System.currentTimeMills()が生成する値と同じです。

millisstart

JRockit JVMが開始してからの経過時間(ミリ秒単位)を出力します。

module

メッセージの生成元のモジュールを出力します。-Xverboseへの引数と同じです。

nanos

System.nanoTime()が返す値と同じ値を出力します。「nanoTime」は、10億分の1秒(ナノ秒)の単位で時間を測定します。ただし、オペレーティング・システムごとに最も効率的な測定方法を使用できるように、nanoTime()の測定開始時刻は指定されていません。

nanosstart

JRockit JVMが開始してからの経過時間(ミリ秒単位)を出力します。

pid

プロセスIDを出力します。

threadid

スレッドの索引を出力します。これは、スレッド・ダンプ内でidxが提供する値と同じ値です。

timestamp

理解しやすい形式のタイムスタンプを出力します。これは、-XverboseTimeStampオプションを使用した場合に表示される値と同じ値です。


java -Xverbose:gcpause -Xverbosedecorations=timestamp,module myApp

出力には次のデコレーションが含まれます。

  • 理解しやすい形式のタイムスタンプ

  • メッセージの生成元のモジュールの名前。

デフォルト値

デコレーションを指定せずに-XverboseDecorationsを使用すると、冗長出力では、moduletimestampおよびpidがこの順序で表示されます。例:

D:\jrockits\R28.0.0-617_1.6.0\bin>java -Xverbose:load -Xverbosedecorations -cp L:\src\ HelloWorld
[load   ][Wed Sep 13 19:43:14 2006][00728] opened zip D:\jrockits\R28.0.0-617_1.6.0\jre\lib\rt.jar

関連オプション

-Xverbosedecorationsは、-Xverboseも設定されている場合のみ使用できます。

-XverboseLog

-XverboseLogオプションは、Oracle JRockit JVMからのメッセージ(冗長出力やエラー・メッセージなど)をstderrではなく、指定したファイルに出力します。

形式

-Xverboselog:myFile.txt

ファイル名と拡張子を指定してこのコマンドを使用すると(myFile.txtなど)、JVMは指定したファイルにロギング情報を書き込みます。

java -Xverbose:gcpause -Xverboselog:verboseText.txt myApp

メイン・クラスmyAppを使用するアプリケーションの冗長なロギング情報がverboseText.txtという名前のファイルに書き込まれます。

関連オプション

-XverboseLogオプションは、-Xverboseが設定されている場合のみ機能します。

例外

-XverboseLogオプションを指定すると、画面には情報が出力されません。

-XverboseTimeStamp

-XverboseTimeStampオプションは、冗長出力にタイムスタンプを追加します。イベントのログを記録するときに役立ちます。

形式

-XverboseTimeStamp

-XverboseTimeStampコマンドと組み合せると、-Xverboseで生成される他の情報とともにタイムスタンプを出力できます。

java -Xverbose -XverboseTimeStamp myApp

次のように、-XverboseTimeStampで生成される出力は、-Xverboseで出力される情報よりも前に表示されます。

L:\src>D:\jrockits\R28.0.0-617_1.6.0\bin\java -Xverbose
-XverboseTimeStamp HelloWorld
[load   ][Mon Sep 25 09:57:56 2006][00624] opened zip
D:\jrockits\R28.0.0-617_1.6.0\jre\lib\rt.jar

関連オプション

-XverboseTimeStampオプションは、冗長出力が-Xverboseを使用して有効になっている場合、または実行時に有効になっている場合にのみ適用されます。

-Xverify

-Xverifyオプションを使用すると、バイトコードの正確性を手動で検証することができます。これらのチェックを実行時に繰返し行わずに、クラスのロード時に一度だけ行うことにより、実行時の効率を高めることができます。

形式

-Xverify:parameter

このオプションを表2-9に示すいずれかのパラメータと組み合せます。

表2-9 -Xverifyのパラメータ

パラメータ 説明
none

バイトコードを検証しません。

注意: このパラメータを使用すると、起動時間は短縮されますが、Javaによる一部の保護機能を利用できなくなります。

remote

ブートストラップ・クラス・ローダーでロードされていないこれらのクラスを検証します。これは-Xverifyオプションを指定しない場合のデフォルトの動作です。

all

すべてのクラスを検証します。


デフォルト値

-Xverifyを使用しない場合、JVMのデフォルトではブートストラップ・クラス・ローダーでロードされていないクラスのみが検証されます(-Xverify:remote)。

関連オプション

-XX:+|-FailOverToOldVerifier