コマンドライン リファレンス : JRockit のコマンドライン オプションの手引き
|
|
-Djrockit.useAdaptiveFatSpin=true
-Djrockit.adaptiveFatSpinMaxSleep=1000
JRockit がスピンに戻るより早くロックを取得する必要があるスリープの数です。
スリープ状態に切り替えるまでに失敗する必要があるスピンの数です。このコンテキストでのスピンとは?
-Djrockit.adaptiveFatSpinMaxSpin=1000
-Djrockit.adaptiveFatSpinTimeStampDiff=2000000
スピンが有益と思われる CPU 固有の時間 (CPU tick 数) の最大差です。
アサーションが発生すると、通常 BEA JRockit はストールし、ユーザがデバッガを接続するまで待機します。このオプションを使用すると、JRockit はメッセージを出力した後、処理を続行します。
このオプションは BEA JRockit のデバッグ専用で、製品には付属しません。
出力ファイルを上書きする代わりに、出力ファイルの末尾に追加します。
-Djrockit.codecoverage.filter=<filterspec>
どのクラスをカバーするかを設定します。
先頭に「-」の付いたフィルタ文字列は、カバー対象外のクラスと見なされます。Windows では「;」、Linux では「:」でフィルタを区切ります。次に例を示します。
-Djrockit.codecoverage.filter=java/util/Hashtable;com/bea/*;-com/bea/blabla.*
フィルタ定義が記述されたファイルの名前を設定します。ファイル形式は 1 行につき 1 つのフィルタ文字列です。
-Djrockit.codecoverage.filterfile=<filename>
-Djrockit.codecoverage.outputfile=<filename>
出力が書き込まれるファイルを設定します。出力ファイルを開いて書き込むことができない場合は、<filename>_0、<filename>_1 などのファイル名が試されます。これは、複数の JVM で共通のコマンドラインを共有する場合に役立ちます。
-Djrockit.codecoverage.testid=<id-string>
-Djrockit.codecoverage.verbose
コード カバレッジの出力をより詳細なものにします。カバレッジ ファイル間の違いをテキストで確認する場合に役立ちます。情報はすべてプレーン テキストで表示されます。
optpriority と同じ働きをしますが、これは通常のコード生成用です。
許可されるコード生成スレッドの数を定義します。通常は 1 CPU あたり 1 スレッドです。
コード生成スレッドを最大限に利用するためのスレッド数を設定します。通常は 1 CPU あたり 1 スレッドです。
このオプションは、最適化するスレッドに与える優先順位を定義します。
XnoOpt を指定して JRockit を実行すると、まだクラッシュするでしょうか。
クラッシュする場合は、最適化が原因ではないと考えられます。-Xverbose:codegen
を指定して実行し、コード生成を調べてください。最後に生成されたメソッドを確認します。いくつかのクラッシュの最中に行われているでしょうか。多数のパラメータが使用されていることや、ネストされたブロックがあることなど、疑わしい点はあるでしょうか。まったく同じ構造になるように、独自のプログラムで同じメソッドを生成し、ダミーのクラスを作成してみます (プログラムを実行する必要はありません。生成するだけです)。
クラッシュしない場合は、-Xnoopt
フラグを取り除きます。-Xverbose:opt
を指定して実行し、最適化の動作を調べます。
-Xverbose:codegen は、たとえ Java スタックがない場合でも、その時点でどの Java コードが実行されていたかを追跡するための汎用ツールとしても役立ちます。
特定のクラスまたはメソッドが疑わしい場合は、Java の優先順位 jrockit.codemgr.breakonthisclass="fully qualified class name"
jrockit.codemgr.breakonthismethod="method name"
または jrockit.codemgr.breakonthisdescriptor="descriptor name"
を指定します。
codemanager.c
の関数 cmgrBreakpoint
にブレークポイントを設定します。
★OOlof inkomplett implementation,O★
このオプションは、コードをどのタイプの IA32 アーキテクチャ向けに最適化するかを設定します。この場合は NetBurst アーキテクチャです。
jrockit.cpu.ia32.netburst=true
JRockit が NetBurst アーキテクチャ向けのコードを生成するようにします。jrockit.cpu.ia32.netburst= false
JRockit が NetBurst 向けの旧タイプのコードを生成するようにします。
新しい制御可能な〔Ctrl〕+〔Break〕の機能 : 〔Ctrl〕+〔Break〕を押すと、JRockit は現在の作業ディレクトリ内で ctrlhandler.act という名前のファイルを検索します。そこにファイルが見つからない場合は、JVM のディレクトリを調べます。そこにもファイルが見つからない場合は、通常のスレッド ダンプの表示に戻ります。しかし、ファイルが見つかった場合は、ファイルからコマンド エントリを読み込みます。各コマンド エントリは、対応する ctrl-break ハンドラを呼び出します。
-Djrockit.dontusectrlbreakfile=true を設定すると、この機能が無効になります。
各コマンド エントリは ctrl-break ハンドラ名で始まり、その後ろに ctrl-break ハンドラに渡される引数が続きます。引数はプロパティ形式 (名前 = 値) で指定する必要があります。プロパティのデータ型として使用できるのは、文字列、整数、またはブール値です。下の ctrlhandler.act の例を参照してください。
CtrlBreakHandler を有効または無効にするには、次のシステム プロパティを使用します。
-Djrockit.ctrlbreak.enable<name>=<true|false>
name は CtrlBreakHandler
の名前です。run_class および force_crash の 2 つのハンドラはデフォルトで禁止になっており、有効にする必要があります。
引き下げるまでに競合していないファット ロックのロック解除の数です。
Djrockit.adaptiveFatSpinTimeStampDiff=2000000
スピンが有益と思われる CPU 固有の時間 (CPU tick 数) の最大差です。 Djrockit.adaptiveFatSpinMaxSpin=1000
スピンからスリープへの切り替えの基準となる値です。この値で指定された回数だけスピンが失敗すると、その時点でスピンの試行は中止され、直接スリープ状態に入るように切り替えられます。 Djrockit.adaptiveFatSpinMaxSleep=1000
スリープからスピンへの切り替えの基準となる値です。スリープ状態が早期に終了してロックが取得された場合がこの値の回数だけ発生すると、その時点でスリープ状態への直接の移行は中止され、スピンを試行するように切り替えられます。 Djrockit.fatlockspins=100
最も内側のロック スピン コードにおいて、ロックからの読み込みを再試行する前に実行されるループの回数です。
mmInitMemoryManager("Xgc", "parallel"); mmSetCompactRatio(0); mmSetMinBlockSize(64*1024); setSystemProperty("jrockit.fullsystemgc", mmStrdup("true")); #if defined(IA64) lowmemUseLargePagesDontExit(); #endif
setSystemProperty("jrockit.hotspot.mode", mmStrdup("boost"));
setSystemProperty("jrockit.hotspot.booststart", mmStrdup("20"));
setSystemProperty("jrockit.hotspot.boostlength", mmStrdup("200"));
setSystemProperty("jrockit.hotspot.noofcandidates", mmStrdup("300"));
setSystemProperty("jrockit.hotspot.mode", mmStrdup("boost"));
setSystemProperty("jrockit.hotspot.booststart", mmStrdup("20"));
setSystemProperty("jrockit.hotspot.boostlength", mmStrdup("200"));
setSystemProperty("jrockit.hotspot.noofcandidates", mmStrdup("300"));
setSystemProperty("jrockit.hotspot.mode", mmStrdup("boost"));
setSystemProperty("jrockit.hotspot.booststart", mmStrdup("20"));
setSystemProperty("jrockit.hotspot.boostlength", mmStrdup("200"));
setSystemProperty("jrockit.hotspot.noofcandidates", mmStrdup("300"));
setSystemProperty("jrockit.hotspot.mode", mmStrdup("boost"));
setSystemProperty("jrockit.hotspot.booststart", mmStrdup("20"));
setSystemProperty("jrockit.hotspot.boostlength", mmStrdup("200"));
setSystemProperty("jrockit.hotspot.noofcandidates", mmStrdup("300"));
このオプションは、JRockit がディスクまたはネットワークからロードされるときに使用します。このクラスでコードブレークのような働きをする?!
-Djrockit.memleak=true - ガベージ コレクション処理後に詳細なヒープの統計を有効にします。
-Djrockit.memleak.period=# - 詳細なヒープ統計のカウントおよび表示の実行頻度に関する memleak 情報を指定します。1 を指定すると毎回のガベージ コレクションでカウントが行われ、2 以上の値を指定するとガベージ コレクションがその回数実行されるごとに (たとえば 2 の場合はガベージ コレクション 1 回おきに) カウントが行われます。
Jocke Vad gör denna här egentligen?
arrayboundscheck を生成しません。デバッグ用です。
1 つの (混乱を招きやすい) 機能は、コンカレント マーク フェーズでメモリ不足が検出された場合、たとえユーザがコンカレント スイープを要求している場合でも、強制的にパラレル スイープになることです。これは、フリーリストが空の場合にコンカレント スイープ フェーズを行う意味がないからです。利用可能なすべてのプロセッサをスイープの実行に回して、休止時間をできるだけ短くするほうが賢明です。
-Djrockit.noparsweep=true
を指定すると、この動作を無効にできます。
このオプションは、メモリ不足エラー、物理メモリ、ヒープの診断、その他の情報を表示します。oom_diagnositcs CtrlBreakHandler
を使ってオプションを強制できます。
OutOfMemoryDiagnostics
を出力する方法は以下のとおりです。set_filename
と -Djrockit.oomdiagnostics.filename
の両方が設定されている場合は、後者が優先します。(後者が優先するとはどのような意味??)
-XXsetgc:barbapappa -Xdebug -Djrockit.oomdiagnostics=true -XXcodecache -Xmanagement
-XXaggressive:opt -Djrockit.oomdiagnostics=true -XXcodecache -Xmanagement
version
command_line
print_memusage
注意 : 新しいプラットフォームに (wiki に記載された手順に従って) アプリケーションを正しくインストールできない場合は、代わりに WLS をインストールし、MedRec または PetStore を実行してください。
GCM の Null (Marcus) - 問題が発生する命令の移動に誤りがあります。
-Xnoopt -Xverbose:opt -Djrockit.optfile=c:¥views¥mikael¥optfile -Xverify -Xmx1g -XXpreopt -cp C:¥jck¥JCK-runtime-14a¥classes -Djava.security.policy=C:¥jck¥JCK-runtime-14a¥lib¥jck.policy javasoft.sqe.tests.api.java.awt.Component.prepareImageTests -TestURL file:///C:/jck/JCK-runtime-14a/tests/api/java_awt/Component/descriptions.html#prepareImage
optfile: + java/awt/Component:getToolkit*
ディレクティブは、特定のメソッドを最適化しないこと、または強制的に最適化することを指示するために使用します。-Djrockit.optfile= でファイルを指定すると、このファイルはオプティマイザに対するディレクティブを読み込むために使われます。ファイルには、メソッドとディレクティブを指定した行が含まれます。
+ bm.time.StaticFactorialTest:fact(I)I
- java.lang.FloatingDecimal:dtoa
- java.lang.Object
+ sun.awt.windows.WComponentPeer:set*
StaticFactorialTest の fact(I)I メソッドは最初に出現したときに最適化され、FloatingDecimal の dtoa というすべてのメソッドと、Object のすべてのメソッドは決して最適化されないことを意味します。また、sun.awt.windows.WComponentPeer の「set」で始まるすべてのメソッドが最適化されます。ディレクティブの指定が競合する場合は、先頭から適用され、最初に一致するものが使用されます。
クラスまたはメソッド名の末尾にワイルドカード文字 (*) を使用できます。
メソッドまたは記述子をスキップした場合、すべてのメソッドと記述子を意味すると解釈されます。
JRockit にはいくつかの冗長オプションが用意されていますが、さまざまな理由から、その多くは公式にドキュメント化されていません。オプションは次の形式で指定します。
-Xverbose:component <,componentN>
例 : -Xverbose:memory,opt
デフォルトでは、出力は stderr に送られますが、-Xverboselog= を使ってファイルに送ることもできます。各「コンポーネント」の説明は次のとおりです。
これらのオプションを設定すると、プログラムから送出された例外に関する詳細な情報を得ることができます (Ariane81SP3Load6 以前のリリースでは、DEBUG バージョンでのみ機能します)。
-Djrockit.printexceptions=true|all|false
-Djrockit.printstacktraces=true|all|false
all オプションを指定すると、すべての例外が出力されます。true オプションを指定した場合は、java/util/EmptyStackException、java/lang/ClassNotFoundException、および java/security/PrivilegedActionException を除くすべての例外が出力されます。これらの例外は、ロードされたクラスごとにクラスローダによって複数回送出されるからです。
print_exceptions という Ctrl Break ハンドラを通じてこれを制御することもできます (Ariane81SP3Load6 より後のバージョンのみ)。このハンドラは、上記と同じパラメータを使用する exceptions と stacktraces という 2 つの引数を取ります。次に例を示します。
print_exceptions exceptions=true stacktraces=true
これらのオプションを設定すると、プログラムから送出された例外に関する詳細な情報を得ることができます (Ariane81SP3Load6 以前のリリースでは、DEBUG バージョンでのみ機能します)。
-Djrockit.printexceptions=true|all|false
-Djrockit.printstacktraces=true|all|false
all オプションを指定すると、すべての例外が出力されます。true オプションを指定した場合は、java/util/EmptyStackException、java/lang/ClassNotFoundException、および java/security/PrivilegedActionException を除くすべての例外が出力されます。これらの例外は、ロードされたクラスごとにクラスローダによって複数回送出されるからです。
print_exceptions という Ctrl Break ハンドラを通じてこれを制御することもできます (Ariane81SP3Load6 より後のバージョンのみ)。このハンドラは、上記と同じパラメータを使用する exceptions と stacktraces という 2 つの引数を取ります。次に例を示します。
print_exceptions exceptions=true stacktraces=true
ant -f run.xml test -Dtpw.test=specjbb-Dtpw.level=sanity -Dspecjbb.test.home=D:¥tests¥SPECjbb2000 -Dtest.jvm.home=d:¥java¥jrockit-j2sdk1.4.2_03 -Dtest.jvm.exe=d:¥java¥jrockit-j2sdk1.4.2_03¥bin¥java -Dtest.jvm.args="-showversion -Xgc:gencon -Djrockit.printstacktraces=all"
-Djrockit.showallocsiteforclass=name
- 指定したクラスの各割り当て場所のバックトレースを出力します。各バックトレースは最初だけ出力されます。ただし、バックトレースが異なる場合は、同じ割り当て場所が複数回表示されることがあります。
Allocation site: 0 for class java/lang/String
at java/io/BufferedReader.readLine(BufferedReader.java:331)
at java/io/BufferedReader.readLine(BufferedReader.java:362)
at java/util/Properties.load(Properties.java:192)
at java/util/logging/LogManager.readConfiguration(L:555)
.
at java/lang/Thread.run(Unknown Source)
--- End of stack trace
Allocation site: 1 for class java/lang/String
at java/util/Locale.toUpperCase(Locale.java:1138)
at java/util/Locale.<init>(Locale.java:265)
at java/util/Locale.<clinit>(Locale.java:195)
at java/util/Locale.getDefault(Locale.java:???)
at java/lang/String.toLowerCase(Unknown Source)
at java/net/URL.<init>(URL.java:366)
.
at java/lang/Thread.run(Unknown Source)
--- End of stack trace
割り当て場所が有効になっている場合は、詳細なヒープ統計ダンプの末尾に「[0: 2] [1: 5]」といった謎めいた情報も表示されます。これは、どの割り当て場所が最も頻繁に呼び出されているかに関する情報です。各ペアの最初の数字は割り当て場所、2 番目の数字は頻度カウンタです。大きい数字は呼び出しの頻度が高いことを意味します。割り当て場所の 1 つが n 回呼び出されるたびに、その割り当て場所のカウンタが増加するという仕組みになっています。
-Djrockit.useAdaptiveFatSpin=true
Djrockit.adaptiveFatSpinTimeStampDiff=2000000
スピンが有益と思われる CPU 固有の時間 (CPU tick 数) の最大差です。 Djrockit.adaptiveFatSpinMaxSpin=1000
スピンからスリープへの切り替えの基準となる値です。この値で指定された回数だけスピンが失敗すると、その時点でスピンの試行は中止され、直接スリープ状態に入るように切り替えられます。 Djrockit.adaptiveFatSpinMaxSleep=1000
スリープからスピンへの切り替えの基準となる値です。スリープ状態が早期に終了してロックが取得された場合がこの値の回数だけ発生すると、その時点でスリープ状態への直接の移行は中止され、スピンを試行するように切り替えられます。 Djrockit.fatlockspins=100
最も内側のロック スピン コードにおいて、ロックからの読み込みを再試行する前に実行されるループの回数です。
これは何かを QA が知りたがる可能性のあるプロパティです。
|
|
|