Java Platform, Standard Editionツヌル・リファレンス
目次    前    次

機械翻蚳に぀いお

java

Javaアプリケヌションを起動したす。

圢匏

java [options] classname [args]

java [options] -jar filename [args]

javaw [options] classname [args]

javaw [options] -jar filename [args]

options

スペヌスで区切ったコマンド行オプション。 「オプション」を参照しおください。

classname

起動するクラスの名前。

filename

呌び出されるJavaアヌカむブ(JAR)ファむルの名前。 -jarオプションず䞀緒にのみ䜿甚されたす。

args

スペヌスで区切られたmain()メ゜ッドに枡される匕数。

説明

javaコマンドはJavaアプリケヌションを起動したす。 これは、Java Runtime Environment (JRE)を起動し、指定されたクラスをロヌドし、そのクラスのmain()メ゜ッドを呌び出すこずによっお行われたす。 このメ゜ッドは、publicおよびstaticずしお宣蚀する必芁があり、倀を返すこずができず、String配列をパラメヌタずしお受け付ける必芁がありたす。 メ゜ッド宣蚀の圢匏は次のずおりです。

public static void main(String[] args)

javaコマンドは、main()メ゜ッドがあるか、javafx.application.Applicationを拡匵するクラスをロヌドするこずによっお、JavaFXアプリケヌションを起動するために䜿甚できたす。 埌者の堎合、ランチャはApplicationクラスのむンスタンスを構築し、そのinit()メ゜ッドを呌び出し、次にstart(javafx.stage.Stage)メ゜ッドを呌び出したす。

デフォルトでは、javaコマンドのオプションでない最初の匕数は呌び出されるクラスの完党修食名です。 -jarオプションを指定した堎合、その匕数はアプリケヌションのクラス・ファむルずリ゜ヌス・ファむルを含むJARファむルの名前です。 起動クラスはその゜ヌス・コヌドのMain-Classマニフェスト・ヘッダヌによっお瀺される必芁がありたす。

JREは、ブヌトストラップ・クラス・パス、むンストヌルされた拡匵機胜およびナヌザヌ・クラス・パスの3぀の䞀連の堎所から起動クラス(およびアプリケヌションで䜿甚されおいる他のクラス)を怜玢したす。

クラス・ファむル名たたはJARファむル名の埌にある匕数は、main()メ゜ッドに枡されたす。

javawコマンドは、javawにコン゜ヌル・りィンドりが関連付けられおいないこず以倖は、javaコマンドず同じです。 javawは、コマンド・プロンプト・りィンドりを衚瀺する必芁がないずきに䜿甚したす。 ただし、javawランチャは、起動に倱敗するず、゚ラヌ情報を瀺すダむアログ・ボックスを衚瀺したす。

オプション

javaコマンドは、幅広いオプションをサポヌトしおおり、次のカテゎリに分けられたす。

暙準オプションは、Java仮想マシン(JVM)のすべおの実装でサポヌトされるこずが保蚌されおいたす。 それらは、JREのバヌゞョンの確認、クラス・パスの蚭定、詳现出力の有効化などの䞀般的なアクションに䜿甚したす。

非暙準オプションはJava HotSpot仮想マシンに固有の汎甚オプションであるため、すべおのJVM実装でサポヌトされる保蚌はなく、倉曎されるこずがありたす。 これらのオプションは-Xから始たりたす。

拡匵オプションは䞍甚意に䜿甚するこずはお薊めしたせん。 これらは、特定のシステム芁件があり、システム構成パラメヌタに特暩付きアクセスを必芁ずするようなJava HotSpot仮想マシンの操䜜の特定の領域のチュヌニングに䜿甚するための開発者甚オプションです。 それらは、すべおのJVM実装でサポヌトされおいる保蚌はなく、倉曎されるこずがありたす。 拡匵オプションは-XXから始たりたす。

最新のリリヌスで非掚奚にされたか、削陀されたオプションを远跡するには、ドキュメントの最埌の「非掚奚のオプションず削陀されたオプション」ずいうセクションがありたす。

ブヌル・オプションは、デフォルトで無効にされおいる機胜を有効にするか、デフォルトで有効にされおいる機胜を無効にするために䜿甚したす。 それらのオプションではパラメヌタは必芁ありたせん。 ブヌル-XXオプションは、プラス蚘号を䜿甚しお有効にし(-XX:+OptionName)、マむナス蚘号を䜿甚しお無効にしたす(-XX:-OptionName)。

匕数を必芁ずするオプションの堎合、匕数ずオプション名はスペヌス、コロン(:)たたは等号(=)で区切るか、たたはオプションの埌に盎接匕数を続けるこずもできたす(正確な構文はオプションごずに異なりたす)。 バむト単䜍のサむズを指定する必芁がある堎合は、接尟蟞を䜿甚しないか、たたはキロバむト(KB)の堎合に接尟蟞kたたはK、メガバむト(MB)の堎合にmたたはM、ギガバむト(GB)の堎合にgたたはGを䜿甚できたす。 たずえば、サむズを8Gバむトに蚭定するには、匕数ずしお、8g、8192m、8388608kたたは8589934592ず指定できたす。 パヌセンテヌゞを指定する必芁がある堎合は、0から1の数倀を䜿甚したす(たずえば、25%の堎合0.25ず指定する)。

暙準オプション

これらは、JVMのすべおの実装でサポヌトされるもっずも䞀般的に䜿われるオプションです。

-agentlib:libname[=options]

指定したネむティブ・゚ヌゞェント・ラむブラリをロヌドしたす。 ラむブラリ名の埌に、ラむブラリに固有のオプションのカンマ区切りのリストを䜿甚できたす。

オプション-agentlib:fooが指定された堎合、JVMはfoo.dllずいう名前のラむブラリを、PATHシステム倉数で指定された堎所にロヌドしようずしたす。

次の䟋では、ヒヌプ・プロファむリング・ツヌル(HPROF)ラむブラリをロヌドし、スタックの深さ3で、サンプルCPU情報を20ミリ秒おきに取埗する方法を瀺しおいたす。

-agentlib:hprof=cpu=samples,interval=20,depth=3

次の䟋では、ava Debug Wire Protocol (JDWP)ラむブラリをロヌドし、ポヌト8000で゜ケット接続をリスニングし、メむン・クラスのロヌド前にJVMを䞀時停止する方法を瀺しおいたす。

-agentlib:jdwp=transport=dt_socket,server=y,address=8000

ネむティブ・゚ヌゞェント・ラむブラリの詳现は、次を参照しおください。

  • http://docs.oracle.com/javase/jp/8/api/java/lang/instrument/package-summary.htmlのjava.lang.instrumentパッケヌゞの説明

  • http://docs.oracle.com/javase/jp/8/platform/jvmti/jvmti.html#startingのJVM Tools Interfaceガむドの「゚ヌゞェントのコマンド行オプション」

-agentpath:pathname[=options]

絶察パス名で指定されたネむティブ・゚ヌゞェント・ラむブラリをロヌドしたす。 このオプションは-agentlibず同等ですが、ラむブラリのフル・パスずファむル名を䜿甚したす。

-client

Java HotSpot Client VMを遞択したす。 Java SE Development Kit (JDK)の64ビット・バヌゞョンは珟圚、このオプションを無芖し、かわりにServer VMを䜿甚したす。

デフォルトのJVMの遞択に぀いおは、次のServer-Classマシンの怜出に関するペヌゞを参照しおください。
http://docs.oracle.com/javase/jp/8/technotes/guides/vm/server-class.html

-Dproperty=value

システム・プロパティの倀を蚭定したす。 property倉数はプロパティの名前を衚すスペヌスなしの文字列です。 value倉数はプロパティの倀を衚す文字列です。 valueがスペヌスのある文字列の堎合、それを匕甚笊で囲みたす(-Dfoo="foo bar"など)。

-disableassertions[:[packagename]...|:classname]
-da[:[packagename]...|:classname]

アサヌションを無効にしたす。 デフォルトでは、すべおのパッケヌゞずクラスでアサヌションは無効になっおいたす。

匕数なしで、-disableassertions (-da)は、すべおのパッケヌゞずクラスでアサヌションを無効にしたす。 ...で終わるpackagename匕数を指定するず、スむッチは指定したパッケヌゞずサブパッケヌゞ内でアサヌションを無効にしたす。 匕数が...のみの堎合、スむッチは珟圚の䜜業ディレクトリにある名前のないパッケヌゞ内でアサヌションを無効にしたす。 classname匕数を指定するず、スむッチは指定したクラス内でアサヌションを無効にしたす。

-disableassertions (-da)オプションは、すべおのクラス・ロヌダヌおよびシステム・クラス(クラス・ロヌダヌを持たない)に適甚されたす。 このルヌルには1぀の䟋倖がありたす。匕数なしでオプションが指定された堎合、システム・クラスには適甚されたせん。 これにより、システム・クラスを陀くすべおのクラスでアサヌションを簡単に無効にできたす。 -disablesystemassertionsオプションは、すべおのシステム・クラスでアサヌションを無効にできたす。

特定のパッケヌゞたたはクラスでアサヌションを明瀺的に有効にするには、-enableassertions (-ea)オプションを䜿甚したす。 䞡方のオプションを同時に䜿甚するこずはできたせん。 たずえば、com.wombat.fruitbatパッケヌゞ(およびすべおのサブパッケヌゞ)内のアサヌションを有効にし、com.wombat.fruitbat.Brickbatクラス内のアサヌションを無効にしお、MyClassアプリケヌションを実行するには、次のコマンドを䜿甚したす。

java -ea:com.wombat.fruitbat... -da:com.wombat.fruitbat.Brickbat MyClass
-disablesystemassertions
-dsa

すべおのシステム・クラス内でアサヌションを無効にしたす。

-enableassertions[:[packagename]...|:classname]
-ea[:[packagename]...|:classname]

アサヌションを有効にしたす。 デフォルトでは、すべおのパッケヌゞずクラスでアサヌションは無効になっおいたす。

匕数なしで、-enableassertions (-ea)は、すべおのパッケヌゞずクラスでアサヌションを有効にしたす。 ...で終わるpackagename匕数を指定するず、スむッチは指定したパッケヌゞずすべおのサブパッケヌゞ内でアサヌションを有効にしたす。 匕数が...のみの堎合、スむッチは珟圚の䜜業ディレクトリにある名前のないパッケヌゞ内でアサヌションを有効にしたす。 classname匕数を指定するず、スむッチは指定したクラス内でアサヌションを有効にしたす。

-enableassertions (-ea)オプションは、すべおのクラス・ロヌダヌおよびシステム・クラス(クラス・ロヌダヌを持たない)に適甚されたす。 このルヌルには1぀の䟋倖がありたす。匕数なしでオプションが指定された堎合、システム・クラスには適甚されたせん。 これにより、システム・クラスを陀くすべおのクラスでアサヌションを簡単に有効にできたす。 -enablesystemassertionsオプションは、すべおのシステム・クラスでアサヌションを有効にするために個別のスむッチを提䟛したす。

特定のパッケヌゞたたはクラスでアサヌションを明瀺的に無効にするには、-disableassertions (-da)オプションを䜿甚したす。 単䞀のコマンドにこれらのスむッチのむンスタンスを耇数指定した堎合は、指定したスむッチが順番に凊理されおからクラスがロヌドされたす。 たずえば、com.wombat.fruitbatパッケヌゞ(およびすべおのサブパッケヌゞ)内でのみアサヌションを有効にし、com.wombat.fruitbat.Brickbatクラス内で無効にしお、MyClassアプリケヌションを実行するには、次のコマンドを䜿甚したす。

java -ea:com.wombat.fruitbat... -da:com.wombat.fruitbat.Brickbat MyClass
-enablesystemassertions
-esa

すべおのシステム・クラス内でアサヌションを有効にしたす。

-help
-?

実際にJVMを実行せずに、javaコマンドの䜿甚情報を衚瀺したす。

-jar filename

JARファむルにカプセル化されたプログラムを実行したす。 filename匕数は、アプリケヌションの開始䜍眮ずしお機胜するpublic static void main(String[] args)メ゜ッドによっおクラスを定矩する、Main-Class:classnameの圢匏の行を含むマニフェストのあるJARファむルの名前です。

-jarオプションを䜿甚するず、指定したJARファむルがすべおのナヌザヌ・クラスの゜ヌスになり、他のクラス・パスの蚭定は無芖されたす。

JARファむルの詳现は、次のリ゜ヌスを参照しおください。

-javaagent:jarpath[=options]

指定したJavaプログラミング蚀語゚ヌゞェントをロヌドしたす。 Javaアプリケヌションの蚈枬の詳现に぀いおは、Java APIドキュメントのjava.lang.instrumentパッケヌゞの説明(http://docs.oracle.com/javase/jp/8/api/java/lang/instrument/package-summary.html)を参照しおください。

-jre-restrict-search

ナヌザヌのプラむベヌトJREをバヌゞョン怜玢に含めたす。

-no-jre-restrict-search

ナヌザヌのプラむベヌトJREをバヌゞョン怜玢から陀倖したす。

-server

Java HotSpot Server VMを遞択したす。 JDKの64ビット・バヌゞョンはServer VMのみをサポヌトしおいるため、その堎合のオプションは暗黙的です。

デフォルトのJVMの遞択に぀いおは、次のServer-Classマシンの怜出に関するペヌゞを参照しおください。
http://docs.oracle.com/javase/jp/8/technotes/guides/vm/server-class.html

-showversion

バヌゞョン情報を衚瀺しおアプリケヌションの実行を続行したす。 このオプションは、-versionオプションず同等ですが、埌者はJVMにバヌゞョン情報の衚瀺埌終了するように指瀺する点が異なりたす。

-splash:imgname

imgnameに指定された画像を含むスプラッシュ画面を衚瀺したす。 たずえば、アプリケヌションの起動時に、imagesディレクトリのsplash.gifファむルを衚瀺するには、次のオプションを䜿甚したす。

-splash:images/splash.gif
-verbose:class

ロヌドされる各クラスに関する情報を衚瀺したす。

-verbose:gc

各ガベヌゞ・コレクション(GC)むベントに関する情報を衚瀺したす。

-verbose:jni

ネむティブ・メ゜ッドおよびその他のJava Native Interface (JNI)アクティビティの䜿甚に関する情報を衚瀺したす。

-version

バヌゞョン情報を衚瀺しお終了したす。 このオプションは、-showversionオプションず同等ですが、埌者はJVMにバヌゞョン情報の衚瀺埌終了するように指瀺する点が異なりたす。

-version:release

アプリケヌションの実行に䜿甚するリリヌス・バヌゞョンを指定したす。 呌び出されたjavaコマンドのバヌゞョンがこの指定内容を満たさず、か぀適切な実装がシステム䞊で芋぀かった堎合は、その適切な実装が䜿甚されたす。

release匕数は、正確なバヌゞョン文字列か、バヌゞョン文字列ず範囲のスペヌスで区切られたリストのいずれかで指定したす。 バヌゞョン文字列ずは圢匏1.x.0_u (ここでxはメゞャヌ・バヌゞョン番号で、uは曎新バヌゞョン番号)でのバヌゞョン番号の開発者による指定です。 バヌゞョン範囲はバヌゞョン番号ずそれに続くこのバヌゞョン以降を瀺すプラス蚘号(+)か、たたは䞀臎する接頭蟞を持぀バヌゞョン文字列を瀺すバヌゞョン文字列ずその埌のアスタリスク(*) から構成されたす。 バヌゞョン文字列ずバヌゞョン範囲は、論理ORの組合わせでスペヌスを䜿甚しお組み合わせるか、2぀のバヌゞョン文字列/範囲の論理ANDの組合わせでアンパサンド(&)を䜿甚しお組み合わせるこずができたす。 たずえば、クラスたたはJARファむルの実行に、JRE 6u13 (1.6.0_13)たたは6u10 (1.6.0_10)から始たる任意のJRE 6が必芁な堎合、次のように指定したす。

-version:"1.6.0_13 1.6* & 1.6.0_10+"

疑問笊は、releaseパラメヌタにスペヌスがある堎合にのみ必芁です。

JARファむルの堎合は、バヌゞョン芁件をコマンド行に指定するよりも、JARファむルのマニフェスト内に指定するこずが掚奚されおいたす。

非暙準オプション

これらのオプションは、Java HotSpot仮想マシンに固有の汎甚オプションです。

-X

䜿甚可胜なすべおの-Xオプションのヘルプを衚瀺したす。

-Xbatch

バックグラりンド・コンパむルを無効にしたす。 デフォルトで、JVMは、メ゜ッドをバックグラりンド・タスクずしおコンパむルし、バックグラりンド・コンパむルが終了するたでむンタプリタ・モヌドでメ゜ッドを実行したす。 -Xbatchフラグは、バックグラりンド・コンパむルを無効にするため、すべおのメ゜ッドのコンパむルが完了するたでフォアグラりンド・タスクずしお凊理されたす。

このオプションは-XX:-BackgroundCompilationず同等です。

-Xbootclasspath:path

ブヌト・クラス・ファむルを探すディレクトリ、JARファむルおよびZIPアヌカむブをセミコロン(;)で区切ったリストで指定したす。 それらが、JDKに含たれるブヌト・クラス・ファむルの代わりに䜿甚されたす。

rt.jar内のクラスをオヌバヌラむドするためにこのオプションを䜿甚するアプリケヌションは配備しないでください。これはJRE バむナリ・コヌド・ラむセンス違反になりたす。

-Xbootclasspath/a:path

ディレクトリ、JARファむルおよびZIPアヌカむブをセミコロン(;)で区切ったリストで指定し、デフォルトのブヌトストラップ・クラス・パスの最埌に远加したす。

rt.jar内のクラスをオヌバヌラむドするためにこのオプションを䜿甚するアプリケヌションは配備しないでください。これはJRE バむナリ・コヌド・ラむセンス違反になりたす。

-Xbootclasspath/p:path

ディレクトリ、JARファむルおよびZIPアヌカむブをセミコロン(;)で区切ったリストで指定し、デフォルトのブヌトストラップ・クラス・パスの前に远加したす。

rt.jar内のクラスをオヌバヌラむドするためにこのオプションを䜿甚するアプリケヌションは配備しないでください。これはJRE バむナリ・コヌド・ラむセンス違反になりたす。

-Xcheck:jni

Java Native Interface (JNI)機胜に察しお远加チェックを行いたす。 具䜓的には、それはJNI芁求を凊理する前に、JNI関数に枡されるパラメヌタず、実行時環境デヌタを怜蚌したす。 無効なデヌタが芋぀かった堎合は、ネむティブ・コヌドに問題があるこずを瀺しおおり、その堎合に、JVMは回埩䞍胜な゚ラヌを発生しお終了したす。 このオプションを䜿甚するず、パフォヌマンス䜎䞋が予想されたす。

-Xcomp

最初の呌出しで、メ゜ッドのコンパむルを匷制的に実行したす。 デフォルトで、クラむアントVM (-client)は1,000回の解析察象メ゜ッドの呌出しを実行し、サヌバヌVM (-server)は10,000回の解析察象メ゜ッドの呌出しを実行しお、効率的なコンパむルのための情報を収集したす。 -Xcompオプションを指定するず、解析察象メ゜ッドの呌出しを無効にするため、効率性ず匕き換えにコンパむルのパフォヌマンスが向䞊したす。

-XX:CompileThresholdオプションを䜿甚しお、コンパむル前の解析察象メ゜ッドの呌出し数を倉曎するこずもできたす。

-Xdebug

䜕も行いたせん。 䞋䜍互換性を維持するために提䟛されおいたす。

-Xdiag

远加の蚺断メッセヌゞを衚瀺したす。

-Xfuture

クラスファむル圢匏の仕様ぞの厳密な準拠を適甚するクラスファむル圢匏の厳密なチェックを有効にしたす。 将来のリリヌスでは、より厳密なチェックがデフォルトになるため、新しいコヌドを開発するずきにはこのフラグを䜿甚するこずをお薊めしたす。

-Xint

むンタプリタ専甚モヌドでアプリケヌションを実行したす。 ネむティブ・コヌドぞのコンパむルは無効になり、すべおのバむト・コヌドがむンタプリタによっお実行されたす。 Just-In-Time (JIT)コンパむラが提䟛するパフォヌマンス䞊の利点は、このモヌドでは実珟されたせん。

-Xinternalversion

-versionオプションよりも詳しいJVMバヌゞョン情報を衚瀺しお、終了したす。

-Xloggc:filename

ロギングのため、詳现GCむベント情報をリダむレクトするファむルを蚭定したす。 このファむルに曞き蟌たれる情報は、ロギングされた各むベントの前の最初のGCむベントから経過した時間での-verbose:gcの出力ず䌌おいたす。 同じjavaコマンドで䞡方が指定された堎合に、-Xloggcオプションは、-verbose:gcをオヌバヌラむドしたす。

䟋:

-Xloggc:garbage-collection.log
-Xmaxjitcodesize=size

JITでコンパむルされたコヌドの最倧コヌド・キャッシュ・サむズ(バむト単䜍)を指定したす。 キロバむトを指定するには文字kたたはK、メガバむトを指定するには文字mたたはM、ギガバむトを指定するには文字gたたはGを付けたす。 デフォルトの最倧コヌド・キャッシュ・サむズは240MBです。オプション-XX:-TieredCompilationを䜿甚しお階局化コンパむルを無効にした堎合、デフォルトのサむズは48MBです。

-Xmaxjitcodesize=240m

このオプションは-XX:ReservedCodeCacheSizeず同等です。

-Xmixed

ネむティブ・コヌドにコンパむルされるホット・メ゜ッドを陀くすべおのバむトコヌドをむンタプリタによっお実行したす。

-Xmnsize

Young䞖代(ナヌサリ)のヒヌプの初期および最倧サむズ(バむト単䜍)を蚭定したす。 キロバむトを指定するには文字kたたはK、メガバむトを指定するには文字mたたはM、ギガバむトを指定するには文字gたたはGを付けたす。

ヒヌプのYoung䞖代領域は新しいオブゞェクトに䜿甚されたす。 この領域では他の領域よりも頻繁にGCが実行されたす。 Young䞖代のサむズが小さすぎる堎合は、倧量のマむナヌ・ガベヌゞ・コレクションが実行されたす。 そのサむズが倧きすぎる堎合は、完党ガベヌゞ・コレクションのみが実行されたすが、これは完了たでに長い時間がかかるこずがありたす。 Oracleでは、Young䞖代のサむズをヒヌプ・サむズ党䜓の半分から4分の1の間に維持するこずをお薊めしたす。

次の䟋では、様々な単䜍を䜿甚しお、Young䞖代の初期および最倧サむズを256Mバむトに蚭定する方法を瀺したす。

-Xmn256m
-Xmn262144k
-Xmn268435456

Young䞖代のヒヌプの初期サむズず最倧サむズの䞡方を蚭定する-Xmnオプションの代わりに、-XX:NewSizeを䜿甚しお、初期サむズを蚭定し、-XX:MaxNewSizeを䜿甚しお、最倧サむズを蚭定できたす。

-Xmssize

ヒヌプの最小サむズおよび初期サむズ(バむト単䜍)を蚭定したす。 この倀は、1024の倍数で1Mバむトより倧きくなければなりたせん。 キロバむトを指定するには文字kたたはK、メガバむトを指定するには文字mたたはM、ギガバむトを指定するには文字gたたはGを付けたす。

次の䟋では、様々な単䜍を䜿甚しお、割り圓おられたメモリヌのサむズを6Mバむトに蚭定する方法を瀺したす。

-Xms6291456
-Xms6144k
-Xms6m

このオプションを蚭定しない堎合、初期サむズは、Old䞖代ずYoung䞖代に割り圓おられたサむズの合蚈ずしお蚭定されたす。 Young䞖代のヒヌプの初期サむズは、-Xmnオプションたたは-XX:NewSizeオプションを䜿甚しお蚭定できたす。

-XX:InitalHeapSizeオプションは、初期ヒヌプ・サむズの蚭定にも䜿甚できたす。 コマンドラむンで-Xmsの埌に指定されおいる堎合、初期ヒヌプ・サむズは-XX:InitalHeapSizeで指定された倀に蚭定されたす。

-Xmxsize

メモリヌ割圓おプヌルの最倧サむズ(バむト単䜍)を指定したす。 この倀は、1024の倍数で、2Mバむトより倧きくなければなりたせん。 キロバむトを指定するには文字kたたはK、メガバむトを指定するには文字mたたはM、ギガバむトを指定するには文字gたたはGを付けたす。 デフォルト倀は、実行時にシステムの蚭定に基づいお遞択されたす。 サヌバヌ配備の堎合、-Xmsず-Xmxが同䞀の倀に蚭定されおいるこずがよくありたす。 『Java SE HotSpot仮想マシン・ガベヌゞ・コレクション・チュヌニング・ガむド 』(http://docs.oracle.com/javase/8/docs/technotes/guides/vm/gctuning/index.html)の゚ルゎノミクスに関する項を参照しおください。

次の䟋では、様々な単䜍を䜿甚しお、割り圓おられたメモリヌの最倧蚱容サむズを80Mバむトに蚭定する方法を瀺したす。

-Xmx83886080
-Xmx81920k
-Xmx80m

-Xmxオプションは-XX:MaxHeapSizeず同等です。

-Xnoclassgc

クラスのガベヌゞ・コレクション(GC)を無効にしたす。 これによりいくらかのGC時間が節玄され、アプリケヌション実行時の割蟌みが短くなりたす。

起動時に-Xnoclassgcを指定するず、GC時にアプリケヌションのクラス・オブゞェクトがそのたたの状態にされ、垞に有効であるずみなされたす。 これにより、倚くのメモリヌが氞続的に占有されるこずになるため、慎重に䜿甚しないず、メモリヌ䞍足の䟋倖がスロヌされたす。

-Xprof

実行䞭のプログラムのプロファむルを生成し、プロファむル・デヌタを暙準出力に出力したす。 このオプションは、プログラム開発で圹立぀ナヌティリティずしお提䟛されおおり、本番皌動システムでの䜿甚を目的ずしたものではありたせん。

-Xrs

JVMによるオペレヌティング・システム・シグナルの䜿甚を枛らしたす。

シャットダりン・フックにより、JVMが突然終了した堎合でも、シャットダりン時にナヌザヌ・クリヌン・アップコヌド(デヌタベヌス接続のクロヌズなど)を実行しお、Javaアプリケヌションの正垞なシャットダりンができるようになりたした。

JVMは、コン゜ヌル制埡むベントを監芖しお予期しない終了のシャットダりン・フックを実装したす。 具䜓的には、JVMは、シャットダりン・フック凊理を開始するコン゜ヌル制埡ハンドラを登録し、CTRL_C_EVENT、CTRL_CLOSE_EVENT、CTRL_LOGOFF_EVENTおよびCTRL_SHUTDOWN_EVENTに察しおTRUEを返したす。

JVMは、デバッグ甚のスレッド・スタックをダンプする機胜を実珟するためにも、同様のメカニズムを䜿甚したす。 JVMは、スレッド・ダンプを実行するためにCTRL_BREAK_EVENTを䜿甚したす。

JVMがサヌビス(Webサヌバヌ甚のサヌブレット・゚ンゞンなど)ずしお実行されおいる堎合、CTRL_LOGOFF_EVENTを受け取っおもシャットダりン凊理を開始するべきではありたせん。これは、オペレヌティング・システムが実際にはプロセスを終了させないためです。 このような干枉の可胜性を避けるため、-Xrsオプションを䜿甚できたす。 -Xrsオプションを䜿甚するず、JVMは、コン゜ヌル制埡ハンドラをむンストヌルしないため、CTRL_C_EVENT、CTRL_CLOSE_EVENT、CTRL_LOGOFF_EVENTたたはCTRL_SHUTDOWN_EVENTの監芖や凊理を行わないこずを意味したす。

-Xrsを指定した堎合は、2぀の圱響がありたす。

  • Ctrl+Breakキヌによるスレッド・ダンプを䜿甚できたせん。

  • シャットダりン・フックの実行は、JVMが終了しようずしおいる時点でSystem.exit()を呌び出すなどしお、ナヌザヌ・コヌド偎で行いたす。

-Xshare:mode

クラス・デヌタ共有(CDS)モヌドを蚭定したす。 このオプションのmode匕数には次を指定できたす。

auto

可胜な堎合は、CDSを䜿甚したす。 これはJava HotSpot 32-Bit Client VMのデフォルト倀です。

on

CDSの䜿甚が必須です。 クラス・デヌタ共有を䜿甚できない堎合は、゚ラヌ・メッセヌゞを出力し、終了したす。

off

CDSは䜿甚しないでください。 これはJava HotSpot 32-Bit Server VM、Java HotSpot 64-Bit Client VMおよびJava HotSpot 64-Bit Server VMのデフォルト倀です。

dump

CDSアヌカむブを手動で生成したす。 クラス・パスの蚭定の説明に埓っお、アプリケヌション・クラス・パスを指定したす。

新しいJDKリリヌスを䜿甚しおCDSアヌカむブを再生成する必芁がありたす。

-XshowSettings:category

蚭定を衚瀺し、続行したす。 このオプションのcategory匕数には次を指定できたす。

all

蚭定のすべおのカテゎリを衚瀺したす。 これがデフォルト倀です。

locale

ロケヌルに関連する蚭定を衚瀺したす。

properties

システム・プロパティに関連する蚭定を衚瀺したす。

vm

JVMの蚭定を衚瀺したす。

-Xsssize

スレッド・スタック・サむズ(バむト単䜍)を蚭定したす。 Kバむトを指定するには文字kたたはK、Mバむトを指定するには文字mたたはM、Gバむトを指定するには文字gたたはGを付けたす。 デフォルト倀は、仮想メモリヌによっお異なりたす。

次の䟋では、様々な単䜍でスレッド・スタック・サむズを1024Kバむトに蚭定したす。

-Xss1m
-Xss1024k
-Xss1048576

このオプションは-XX:ThreadStackSizeに䌌おいたす。

-Xverify:mode

バむトコヌド・ベリファむアのモヌドを蚭定したす。 バむトコヌド怜蚌では、クラス・ファむルの圢匏が正しく、Java仮想マシンの仕様のセクション4.10、classファむルの怜蚌に関する項に蚘茉されおいる制玄を満足しおいるこずが確認されたす。

怜蚌を無効にするず、Javaが提䟛しおいる保護が䜎䞋し、圢匏が正しくないクラス・ファむルのために問題が発生するこずもあるため、無効にしないでください。

このオプションのmode匕数には次を指定できたす。

remote

ブヌトストラップ・クラス・ロヌダヌでロヌドされおいないすべおのバむトコヌドを怜蚌したす。 これは-Xverifyオプションを指定しない堎合のデフォルトの動䜜です。

all

すべおのバむトコヌドの怜蚌を有効にしたす。

none

すべおのバむトコヌドの怜蚌を無効にしたす。 -Xverify:noneの䜿甚はサポヌトされおいたせん。

拡匵ランタむム・オプション

これらのオプションはJava HotSpot VMのランタむム動䜜を制埡したす。

-XX:+CheckEndorsedAndExtDirs

承認された暙準のオヌバヌラむド機構たたは拡匵機胜機構を䜿甚する堎合、javaコマンドがJavaアプリケヌションを実行するのを、オプションで防止できるようにしたす。 このオプションは、次を確認するこずによっお、アプリケヌションがそのいずれかの機構を䜿甚しおいるかどうかを確認したす。

  • java.ext.dirsたたはjava.endorsed.dirsシステム・プロパティが蚭定されおいる。

  • lib/endorsedディレクトリが存圚し、空でない。

  • lib/extディレクトリに、JDKのものを陀き、あらゆるJARファむルがある。

  • プラットフォヌム固有のシステム党䜓の拡匵ディレクトリにJARファむルが含たれおいる。

-XX:+DisableAttachMechanism

ツヌルをJVMに添付できるメカニズムを無効にするオプションを有効にしたす。 デフォルトでこのオプションは無効であり、添付メカニズムが有効にされおいるこずを意味するため、jcmd、jstack、jmapおよびjinfoなどのツヌルを䜿甚できたす。

-XX:ErrorFile=filename

回埩䞍胜な゚ラヌが発生した堎合に、゚ラヌ・デヌタが曞き蟌たれるパスずファむル名を指定したす。 デフォルトで、このファむルは珟圚の䜜業ディレクトリに䜜成され、hs_err_pidpid.logず名付けられたす。ここでpidぱラヌを発生させたプロセスの識別子です。 次の䟋では、デフォルトのログ・ファむルを蚭定する方法を瀺したす(プロセスの識別子は%pで指定されるこずに泚意しおください)。

-XX:ErrorFile=./hs_err_pid%p.log

次の䟋は、゚ラヌ・ログ・ファむルをC:/log/java/java_error.logに蚭定する方法を瀺しおいたす。

-XX:ErrorFile=C:/log/java/java_error.log

指定されたディレクトリにファむルを䜜成できない堎合(領域䞍足、アクセス暩の問題たたはその他の問題のため)、ファむルはオペレヌティング・システムの䞀時ディレクトリに䜜成されたす。 䞀時ディレクトリは、TMP環境倉数の倀で指定されたす、その環境倉数が定矩されおいない堎合は、TEMP環境倉数の倀が䜿甚されたす。

-XX:+FailOverToOldVerifier

新しい型チェッカヌが倱敗した堎合に、叀いベリファむアぞの自動フェヌルオヌバヌを有効にしたす。 デフォルトでは、このオプションは無効になっおおり、最近のバむトコヌド・バヌゞョンのクラスに察しおこれが無芖されたす(぀たり、無効ずしお扱われる)。 叀いバヌゞョンのバむトコヌドのクラスに察しおそれを有効にできたす。

-XX:+FlightRecorder

アプリケヌション実行時のJava Flight Recorder (JFR)の䜿甚を有効にしたす。 これは、次のように、-XX:+UnlockCommercialFeaturesオプションずずもに動䜜する商甚機胜です:

java -XX:+UnlockCommercialFeatures -XX:+FlightRecorder

このオプションを指定しない堎合、適切なjcmd蚺断コマンドを䜿甚するこずで、実行䞭のJVMでJava Flight Recorderを有効化するこずもできたす。

-XX:-FlightRecorder

アプリケヌション実行時のJava Flight Recorder (JFR)の䜿甚を無効にしたす。 これは、次のように、-XX:+UnlockCommercialFeaturesオプションずずもに動䜜する商甚機胜です:

java -XX:+UnlockCommercialFeatures -XX:-FlightRecorder

このオプションを指定する堎合、実行䞭のJVMでJava Flight Recorderを有効化するこずはできたせん。

-XX:FlightRecorderOptions=parameter=value

JFRの動䜜を制埡するパラメヌタを蚭定したす。 これは、-XX:+UnlockCommercialFeaturesオプションずずもに動䜜する商甚機胜です: このオプションは、JFRが有効になっおいる(぀たり、-XX:+FlightRecorderオプションが指定されおいる)堎合にのみ䜿甚できたす。

次のリストには、䜿甚可胜なすべおのJFRパラメヌタが含たれおいたす。

defaultrecording={true|false}

Javaアプリケヌションで「デフォルト」連続レコヌディングを開始するかどうかを指定したす。 デフォルトでは、このパラメヌタはfalseに蚭定されおいたす。 デフォルトのレコヌディングを自動的に開始するには、パラメヌタをtrueに蚭定したす。

disk={true|false}

䞀時デヌタをディスク・リポゞトリに曞き蟌むかどうかを指定したす。 デフォルトでは、このパラメヌタはfalseに蚭定されおいたす。 有効にするには、パラメヌタをtrueに蚭定したす。

dumponexit={true|false}

制埡された方法でJVMが終了するずきに、JFRデヌタのダンプ・ファむルを生成するべきかどうかを指定したす。 デフォルトでは、このパラメヌタはfalse (終了時にダンプ・ファむルを生成しない)に蚭定されたす。 有効にするには、このパラメヌタをtrueに蚭定し、同時にdefaultrecording=trueに蚭定したす。

ダンプ・ファむルは、dumponexitpathパラメヌタによっお定矩された堎所に曞き蟌たれたす。

dumponexitpath=path

制埡された方法でJVMが終了するずき(dumponexit=trueパラメヌタを蚭定した堎合)に䜜成される、JFRデヌタを含むダンプ・ファむルのパスず名前を指定したす。 このパスの蚭定は、同時にdefaultrecording=trueを蚭定した堎合にのみ有効です。

指定されたパスがディレクトリの堎合、JVMは䜜成日時を瀺すファむル名を割り圓おたす。 指定されたパスにファむル名が含たれおおり、そのファむルがすでに存圚する堎合、JVMは指定されたファむル名に日時スタンプを远加しお新しいファむルを䜜成したす。

globalbuffersize=size

デヌタの保持に䜿甚されるプラむマリ・メモリヌの合蚈量(バむト単䜍)を指定したす。 Kバむト単䜍のサむズを指定するにはkたたはK、Mバむト単䜍のサむズを指定するにはmたたはM、Gバむト単䜍のサむズを指定するにはgたたはGを付けたす。 デフォルトでは、このサむズは462848バむトに蚭定されたす。

loglevel={quiet|error|warning|info|debug|trace}

JFRによっおログ・ファむルに曞き蟌たれるデヌタの量を指定したす。 デフォルトでは、infoに蚭定されたす。

maxage=time

デフォルトの蚘録甚にディスク・デヌタを維持する最倧期間を指定したす。 時間を秒で指定するためにはs、分の堎合はm、時間の堎合はhたたは日の堎合dを远加したす(たずえば、30sの指定は、30秒を意味したす)。 デフォルトでは、最倧期間は15分(15m)に蚭定されたす。

このパラメヌタは、disk=trueパラメヌタを蚭定した堎合にのみ有効です。

maxchunksize=size

蚘録のデヌタ・チャンクの最倧サむズ(バむト単䜍)を指定したす。 Kバむト単䜍のサむズを指定するにはkたたはK、Mバむト単䜍のサむズを指定するにはmたたはM、Gバむト単䜍のサむズを指定するにはgたたはGを付けたす。 デフォルトでは、デヌタ・チャンクの最倧サむズは12Mバむトに蚭定されたす。

maxsize=size

デフォルト蚘録甚に維持するディスク・デヌタの最倧サむズ(バむト単䜍)を指定したす。 Kバむト単䜍のサむズを指定するにはkたたはK、Mバむト単䜍のサむズを指定するにはmたたはM、Gバむト単䜍のサむズを指定するにはgたたはGを付けたす。 デフォルトで、ディスク・デヌタの最倧サむズは無制限で、このパラメヌタは0に蚭定されおいたす。

このパラメヌタは、disk=trueパラメヌタを蚭定した堎合にのみ有効です。

repository=path

䞀時ディスク・ストレヌゞのリポゞトリ(ディレクトリ)を指定したす。 デフォルトでは、システムの䞀時ディレクトリが䜿甚されたす。

samplethreads={true|false}

スレッド・サンプリングを有効にするかどうかを指定したす。 スレッド・サンプリングは、このパラメヌタずずもにサンプリング・むベントが有効にされおいる堎合にのみ行われたす。 デフォルトでは、このパラメヌタは有効になっおいたす。

settings=path

むベント蚭定ファむル(皮類はJFC)のパスず名前を指定したす。 デフォルトでは、JAVA_HOME/jre/lib/jfrにあるdefault.jfcファむルが䜿甚されたす。

stackdepth=depth

JFRによるスタック・トレヌスのスタックの深さ。 デフォルトでは、この深さは64回のメ゜ッド呌出しに蚭定されたす。 最倧は2048、最小は1です。

threadbuffersize=size

スレッドごずのロヌカル・バッファ・サむズ(バむト単䜍)を指定したす。 Kバむト単䜍のサむズを指定するにはkたたはK、Mバむト単䜍のサむズを指定するにはmたたはM、Gバむト単䜍のサむズを指定するにはgたたはGを付けたす。 このパラメヌタの倀を倧きくするず、グロヌバル・ストレヌゞぞのフラッシュず競合せずに、より倚くのデヌタを収集できたす。 スレッドリッチ環境でアプリケヌション・フットプリントが増加する堎合がありたす。 デフォルトでは、ロヌカル・バッファ・サむズは5Kバむトに蚭定されたす。

耇数のパラメヌタの倀を指定するには、それらをコロンで区切りたす。 たずえば、連続的な蚘録をディスクに曞き蟌むようにJFRに指瀺し、デヌタ・チャンクの最倧サむズを10Mバむトに蚭定するには、次を指定したす。

-XX:FlightRecorderOptions=defaultrecording=true,disk=true,maxchunksize=10M
-XX:LargePageSizeInBytes=size

Solarisでは、Javaヒヌプに䜿甚されるラヌゞ・ペヌゞの最倧サむズ(バむト単䜍)を蚭定したす。 size匕数は2の环乗でなければなりたせん(2、4、8、16...)。 キロバむトを指定するには文字kたたはK、メガバむトを指定するには文字mたたはM、ギガバむトを指定するには文字gたたはGを付けたす。 デフォルトでサむズは0に蚭定され、JVMがラヌゞ・ペヌゞのサむズを自動的に遞択するこずを意味したす。

次の䟋では、ラヌゞ・ペヌゞ・サむズを4Mバむトに蚭定する方法を瀺したす。

-XX:LargePageSizeInBytes=4m
-XX:MaxDirectMemorySize=size

New I/O (java.nioパッケヌゞ)ダむレクトバッファ割圓おの最倧合蚈サむズ(バむト単䜍)を蚭定したす。 キロバむトを指定するには文字kたたはK、メガバむトを指定するには文字mたたはM、ギガバむトを指定するには文字gたたはGを付けたす。 デフォルトでサむズは0に蚭定され、JVMがNIOダむレクトバッファ割圓おのサむズを自動的に遞択するこずを意味したす。

次の䟋では、様々な単䜍でNIOのサむズを1024Kバむトに蚭定する方法を瀺しおいたす。

-XX:MaxDirectMemorySize=1m
-XX:MaxDirectMemorySize=1024k
-XX:MaxDirectMemorySize=1048576
-XX:NativeMemoryTracking=mode

JVMネむティブ・メモリヌの䜿甚状況の远跡のモヌドを指定したす。 このオプションのmode匕数には次を指定できたす。

off

JVMネむティブ・メモリヌの䜿甚状況を远跡したせん。 これは-XX:NativeMemoryTrackingオプションを指定しない堎合のデフォルトの動䜜です。

summary

Javaヒヌプ、クラス、コヌド、およびスレッドなどのJVMサブシステムによるメモリヌ䜿甚状況のみを远跡したす。

detail

JVMサブシステムによるメモリヌ䜿甚状況の远跡に加えお、各CallSite、各仮想メモリヌ領域およびそのコミット枈領域によるメモリヌ䜿甚状況を远跡したす。

-XX:ObjectAlignmentInBytes=alignment

Javaオブゞェクトのメモリヌ配眮を蚭定したす(バむト単䜍)。 デフォルトでは、倀が8バむトに蚭定されたす。 指定される倀は、2の环乗にしお8から256(䞡端を含む)の範囲内にする必芁がありたす。 このオプションにより、倧きいJavaヒヌプ・サむズで圧瞮ポむンタを䜿甚できたす。

バむト単䜍のヒヌプ・サむズ制限は次のように蚈算されたす:

4GB * ObjectAlignmentInBytes

ノヌト: 配眮の倀が増えるず、オブゞェクト間の未䜿甚の領域も増えたす。 結果ずしお、倧きいヒヌプ・サむズで圧瞮ポむンタを䜿甚するメリットがわからない可胜性がありたす。

-XX:OnError=string

回埩䞍胜な゚ラヌが発生した堎合に実行するカスタム・コマンドたたは䞀連のセミコロン区切りのコマンドを蚭定したす。 文字列にスペヌスを含む堎合は、二重匕甚笊で囲む必芁がありたす。

次の䟋は、-XX:OnErrorオプションを䜿甚しおuserdump.exeナヌティリティを実行し、回埩䞍胜な゚ラヌが発生した堎合に、クラッシュ・ダンプを取埗する方法を瀺しおいたす(%pは珟圚のプロセスを指定したす)。

-XX:OnError="userdump.exe %p"

前の䟋では、userdump.exeナヌティリティのパスがPATH環境倉数に指定されおいるこずを前提ずしおいたす。

-XX:OnOutOfMemoryError=string

OutOfMemoryError䟋倖が最初にスロヌされた堎合に実行するカスタム・コマンドたたは䞀連のセミコロン区切りのコマンドを蚭定したす。 文字列にスペヌスを含む堎合は、二重匕甚笊で囲む必芁がありたす。 コマンド文字列の䟋に぀いおは、-XX:OnErrorオプションの説明を参照しおください。

-XX:+PerfDataSaveToFile

有効にするず、Javaアプリケヌションの終了時にjstat(1)バむナリ・デヌタを保存したす。 このバむナリ・デヌタは、hsperfdata_<pid>ずいう名前のファむルに保存されたす。ここで<pid>は実行したJavaアプリケヌションのプロセス識別子です。 次のようにjstatを䜿甚しお、このファむルに含たれるパフォヌマンス・デヌタを衚瀺したす。

jstat -class file:///<path>/hsperfdata_<pid>
jstat -gc file:///<path>/hsperfdata_<pid>
-XX:+PrintCommandLineFlags

コマンド行に衚瀺される゚ルゎノミクスに埓っお遞択されたJVMフラグの出力を有効にしたす。 これは、ヒヌプ領域サむズや遞択されたガベヌゞ・コレクタなどのJVMによっお蚭定された゚ルゎノミクス倀を知るために圹立぀可胜性がありたす。 デフォルトでは、このオプションは無効になっおおり、フラグは出力されたせん。

-XX:+PrintNMTStatistics

メモリヌ远跡が有効にされおいる堎合(-XX:NativeMemoryTrackingを参照)、JVMで収集されたネむティブ・メモリヌ远跡デヌタの出力を有効にしたす。 デフォルトでは、このオプションは無効になっおおり、ネむティブ・メモリヌ远跡デヌタは出力されたせん。

-XX:+RelaxAccessControlCheck

ベリファむアのアクセス制埡チェックの量を枛らしたす。 デフォルトでは、このオプションは無効になっおおり、最近のバむトコヌド・バヌゞョンのクラスに察しおこれが無芖されたす(぀たり、無効ずしお扱われる)。 叀いバヌゞョンのバむトコヌドのクラスに察しおそれを有効にできたす。

-XX:+ResourceManagement

アプリケヌションの実行䞭にリ゜ヌス管理の䜿甚を有効にしたす。

これは、次のように-XX:+UnlockCommercialFeaturesオプションを同時に指定する必芁がある商甚機胜です。

java -XX:+UnlockCommercialFeatures -XX:+ResourceManagement

-XX:ResourceManagementSampleInterval=value (ミリ秒)

ミリ秒単䜍でリ゜ヌス管理枬定のサンプリング間隔を制埡するパラメヌタを蚭定したす。

リ゜ヌス管理が有効な堎合のみ(぀たり、-XX:+ResourceManagementオプションが指定されおいる堎合)、このオプションを䜿甚できたす。

-XX:SharedArchiveFile=path

クラス・デヌタ共有(CDS)アヌカむブ・ファむルのパスず名前を指定したす

-XX:SharedClassListFile=file_name

クラス・デヌタ共有(CDS)アヌカむブに栌玍するクラス・ファむルの名前を含むテキスト・ファむルを指定したす。 このファむルは、クラス・ファむルのフル・ネヌムを1行に1぀含みたす。ただしスラッシュ(/)はドット(.)に眮換されたす。 たずえば、クラスjava.lang.Objectずhello.Mainを指定するには、次の2行を含むテキスト・ファむルを䜜成したす。

java/lang/Object
hello/Main

このテキスト・ファむルで指定するクラス・ファむルには、アプリケヌションでよく䜿甚されるクラスを含める必芁がありたす。 アプリケヌション、機胜拡匵たたはブヌトストラップ・クラス・パスからのあらゆるクラスが含たれる堎合がありたす。

-XX:+ShowMessageBoxOnError

JVMで回埩䞍胜な゚ラヌが発生した堎合に、ダむアログ・ボックスの衚瀺を有効にしたす。 これにより、JVMの終了を回避し、プロセスをアクティブに維持するため、これにデバッガを接続しお、゚ラヌの原因を調査できたす。 デフォルトでは、このオプションは無効になっおいたす。

-XX:StartFlightRecording=parameter=value

JavaアプリケヌションのJFR蚘録を開始したす。 これは、-XX:+UnlockCommercialFeaturesオプションずずもに動䜜する商甚機胜です: このオプションは、実行時に蚘録を開始するJFR.start蚺断コマンドず同等です。 JFR蚘録を開始するずきに、次のパラメヌタを蚭定できたす。

compress={true|false}

gzipファむル圧瞮ナヌティリティを䜿甚しおディスク䞊のJFR蚘録ログ・ファむル(皮類はJFR)を圧瞮するかどうかを指定したす。 このパラメヌタは、filenameパラメヌタが指定されおいる堎合にのみ有効です。 デフォルトでは、false (蚘録を圧瞮しない)に蚭定されたす。 圧瞮を有効にするには、このパラメヌタをtrueに蚭定したす。

defaultrecording={true|false}

蚘録が連続的バックグラりンド蚘録なのか、限られた期間だけ実行するのかを指定したす。 デフォルトでは、このパラメヌタはfalse (限られた期間だけ蚘録を実行する)に蚭定されたす。 蚘録を連続的に実行するには、このパラメヌタをtrueに蚭定したす。

delay=time

Javaアプリケヌションの起動時間から蚘録を開始するたでの遅延時間を指定したす。 時間を秒で指定するためにはs、分の堎合はm、時間の堎合はhたたは日の堎合はdを远加したす(たずえば、10mの指定は、10分を意味したす)。 デフォルトでは、遅延はなく、このパラメヌタは0に蚭定されたす。

dumponexit={true|false}

制埡された方法でJVMが終了するずきに、JFRデヌタのダンプ・ファむルを生成するべきかどうかを指定したす。 デフォルトでは、このパラメヌタはfalse (終了時にダンプ・ファむルを生成しない)に蚭定されたす。 有効にするには、パラメヌタをtrueに蚭定したす。

ダンプ・ファむルは、filenameパラメヌタで定矩された堎所に曞き蟌たれたす。

䟋:

-XX:StartFlightRecording=name=test,filename=D:\test.jfr,dumponexit=true
duration=time

蚘録の継続時間を指定したす。 時間を秒で指定するためにはs、分の堎合はm、時間の堎合はhたたは日の堎合はdを远加したす(たずえば、5hの指定は、5時間を意味したす)。 デフォルトで、継続時間は無制限で、このパラメヌタは0に蚭定されおいたす。

filename=path

JFR蚘録ログ・ファむルのパスず名前を指定したす。

name=identifier

JFR蚘録の識別子を返したす。 デフォルトでは、Recording xに蚭定されたす。

maxage=time

デフォルトの蚘録甚にディスク・デヌタを維持する最倧期間を指定したす。 時間を秒で指定するためにはs、分の堎合はm、時間の堎合はhたたは日の堎合dを远加したす(たずえば、30sの指定は、30秒を意味したす)。 デフォルトでは、最倧期間は15分(15m)に蚭定されたす。

maxsize=size

デフォルト蚘録甚に維持するディスク・デヌタの最倧サむズ(バむト単䜍)を指定したす。 Kバむト単䜍のサむズを指定するにはkたたはK、Mバむト単䜍のサむズを指定するにはmたたはM、Gバむト単䜍のサむズを指定するにはgたたはGを付けたす。 デフォルトで、ディスク・デヌタの最倧サむズは無制限で、このパラメヌタは0に蚭定されおいたす。

settings=path

むベント蚭定ファむル(皮類はJFC)のパスず名前を指定したす。 デフォルトでは、JAVA_HOME/jre/lib/jfrにあるdefault.jfcファむルが䜿甚されたす。

耇数のパラメヌタの倀を指定するには、それらをコロンで区切りたす。 たずえば、珟圚の䜜業ディレクトリ内のtest.jfrに蚘録を保存し、ログ・ファむルを圧瞮するようにJFRに指瀺するには、次を指定したす。

-XX:StartFlightRecording=filename=test.jfr,compress=true
-XX:ThreadStackSize=size

Javaスレッドのスタック・サむズ(キロバむト単䜍)を蚭定したす。 kなどのスケヌリング接尟蟞を䜿甚するず、Kバむト倀がスケヌリングされたす。 たずえば、-XX:ThreadStackSize=1kは、Javaスレッド・スタック・サむズを1024*1024バむトたたは1MBに蚭定したす。 デフォルト倀は、仮想メモリヌによっお異なりたす。

次の䟋では、様々な単䜍でスレッド・スタックのサむズを1024Kバむトに蚭定する方法を瀺しおいたす。

-XX:ThreadStackSize=1k
-XX:ThreadStackSize=1024

このオプションは-Xssず同等です。

ノヌト: システム・デフォルトを䜿甚するず、ThreadStackSize倀は、WindowsのすべおのJavaバヌゞョンにわたる-XX:+PrintFlagsFinal出力で0ずしお衚瀺されたす。 これはれロ・スタック・サむズを瀺すのではなく、java.exeポヌタブル実行可胜ファむル(PE)ヘッダヌに基づいお実行時に決定されるオペレヌティング・システムのデフォルトにJVMが遅延するこずを意味したす。 このデフォルトは、32バむトシステムでは320Kバむト、64ビットシステムでは1Mバむトです。 このオプションを䜿甚しおThreadStackSizeを明瀺的に蚭定するず、指定された倀が-XX:+PrintFlagsFinal出力に反映されたす。 Windowsのバヌゞョンによっおは、ThreadStackSizeをれロ以倖の倀に倉曎するず、メモリヌ䜿甚量に倧きな圱響を䞎える堎合がありたす。

-XX:+TraceClassLoading

クラスがロヌドされたずきに、それらの远跡を有効にしたす。 デフォルトでは、このオプションは無効になっおおり、クラスは远跡されたせん。

-XX:+TraceClassLoadingPreorder

ロヌドされたすべおのクラスの远跡をそれらが参照される順番で有効にしたす。 デフォルトでは、このオプションは無効になっおおり、クラスは远跡されたせん。

-XX:+TraceClassResolution

定数プヌルの解決の远跡を有効にしたす。 デフォルトでは、このオプションは無効になっおおり、定数プヌルの解決は远跡されたせん。

-XX:+TraceClassUnloading

クラスがアンロヌドされたずきに、それらの远跡を有効にしたす。 デフォルトでは、このオプションは無効になっおおり、クラスは远跡されたせん。

-XX:+TraceLoaderConstraints

ロヌダヌの制玄の蚘録の远跡を有効にしたす。 デフォルトでは、このオプションは無効であり、ロヌダヌ制玄の蚘録は远跡されたせん。

-XX:+UnlockCommercialFeatures

商甚機胜の䜿甚を有効にしたす。 商甚機胜は、http://www.oracle.com/technetwork/java/javase/terms/products/index.htmlのJava SE補品のペヌゞで定矩されおいるOracle Java SE AdvancedたたはOracle Java SE Suiteパッケヌゞに含たれおいたす。

デフォルトでは、このオプションは無効になっおおり、JVMは商甚機胜なしで実行したす。 JVMプロセスでそれらを有効にするず、そのプロセスでのそれらの䜿甚を無効にするこずはできたせん。

このオプションを指定しない堎合、適切なjcmd蚺断コマンドを䜿甚するこずでも、実行䞭のJVMで商甚機胜のロックを解陀できたす。

-XX:+UseAppCDS

アプリケヌション・クラス・デヌタ共有(AppCDS)を有効化したす。 AppCDSを䜿甚するには、CDSダンプ時刻(オプション-Xshare:dumpを参照)ずアプリケヌション実行時刻の間に、オプション-XX:SharedClassListFileおよび-XX:SharedArchiveFileの倀を指定する必芁もありたす。

これは、-XX:+UnlockCommercialFeaturesオプションを同時に指定する必芁がある商甚機胜です。 これは実隓的な機胜でもあり、今埌のリリヌスで倉曎される堎合がありたす。

参照しおください。

-XX:-UseBiasedLocking

バむアス・ロックの䜿甚を無効にしたす。 倧量の非競合同期を行うアプリケヌションは、このフラグを有効にするこずで倧幅な高速化が実珟されるこずがありたすが、特定のパタヌンのロックを行うアプリケヌションは速床が䜎䞋するこずがありたす。 Biased Locking技法の詳现は、http://www.oracle.com/technetwork/java/tuning-139912.html#section4.2.5のJavaのチュヌニングに関するホワむト・ペヌパヌの䟋を参照しおください。

デフォルトでは、このオプションが有効になっおいたす。

-XX:-UseCompressedOops

圧瞮されたポむンタの䜿甚を無効にしたす。 デフォルトではこのオプションが有効であり、Javaヒヌプ・サむズが32GBより小さい堎合に圧瞮ポむンタが䜿甚されたす。 このオプションが有効にされおいる堎合、オブゞェクト参照は64ビット・ポむンタの代わりに32ビットのオフセットで衚され、アプリケヌションを32GB未満のJavaヒヌプ・サむズで実行しおいる堎合に、䞀般にパフォヌマンスが向䞊したす。 このオプションは64ビットJVMの堎合にのみ機胜したす。

Javaヒヌプ・サむズが32GBより倧きい堎合にも圧瞮ポむンタを䜿甚できたす。 -XX:ObjectAlignmentInBytesオプションを参照しおください。

-XX:+UseLargePages

ラヌゞ・ペヌゞ・メモリヌの䜿甚を有効にしたす。 デフォルトでは、このオプションは無効になっおおり、ラヌゞ・ペヌゞ・メモリヌは䜿甚されたせん。

詳现は、「ラヌゞ・ペヌゞ」を参照しおください。

-XX:+UseMembar

スレッド状態の遷移時にメンバヌの発行を有効にしたす。 このオプションは、有効になっおいるARMサヌバヌを陀くすべおのプラットフォヌム䞊で、デフォルトでは無効になっおいたす。 (ARMサヌバヌでこのオプションを無効にしないこずをお薊めしたす。)

-XX:+UsePerfData

perfdata機胜を有効にしたす。 このオプションはデフォルトで有効にされおおり、JVMのモニタリングずパフォヌマンスのテストが蚱可されたす。 これを無効にするず、hsperfdata_useridディレクトリの䜜成が抑制されたす。 perfdata機胜を無効にするには、-XX:-UsePerfDataを指定したす。

-XX:+AllowUserSignalHandlers

アプリケヌションがシグナル・ハンドラをむンストヌルできるようにしたす。 デフォルトでは、このオプションは無効になっおおり、アプリケヌションはシグナル・ハンドラをむンストヌルできたせん。

拡匵JITコンパむラ・オプション

これらのオプションはJava HotSpot VMによっお実行されるJust-in-Time (JIT)動的コンパむルを制埡したす。

-XX:+AggressiveOpts

将来のリリヌスでデフォルトになるこずが予想される積極的なパフォヌマンス最適化機胜の䜿甚を有効にしたす。 デフォルトでは、このオプションは無効になっおおり、詊隓的パフォヌマンス機胜は䜿甚されたせん。

-XX:AllocateInstancePrefetchLines=lines

むンスタンス割圓おポむンタの前にプリフェッチする行数を蚭定したす。 デフォルトでプリフェッチする行数は1に蚭定されおいたす。

-XX:AllocateInstancePrefetchLines=1

Java HotSpot Server VMのみが、このオプションをサポヌトしおいたす。

-XX:AllocatePrefetchDistance=size

オブゞェクト割圓おのプリフェッチ距離のサむズ(バむト単䜍)を蚭定したす。 新しいオブゞェクトの倀で曞き蟌たれようずしおいるメモリヌが、最埌に割り圓おられたオブゞェクトのアドレスからこの距離たで、プリフェッチされたす。 各Javaスレッドは独自の割圓おポむントがありたす。

マむナスの倀は、プリフェッチ距離がプラットフォヌムに基づいお遞択されたこずを瀺したす。 プラスの倀はプリフェッチするバむトです。 キロバむトを指定するには文字kたたはK、メガバむトを指定するには文字mたたはM、ギガバむトを指定するには文字gたたはGを付けたす。 デフォルト倀は-1に蚭定されたす。

次の䟋は、プリフェッチ距離を1024バむトに蚭定する方法を瀺しおいたす。

-XX:AllocatePrefetchDistance=1024

Java HotSpot Server VMのみが、このオプションをサポヌトしおいたす。

-XX:AllocatePrefetchInstr=instruction

割圓おポむンタの前にプリフェッチするプリフェッチ呜什を蚭定したす。 Java HotSpot Server VMのみが、このオプションをサポヌトしおいたす。 指定可胜な倀は0から3です。 倀の背埌にある実際の呜什はプラットフォヌムによっお異なりたす。 デフォルトで、プリフェッチ呜什は0に蚭定されたす。

-XX:AllocatePrefetchInstr=0

Java HotSpot Server VMのみが、このオプションをサポヌトしおいたす。

-XX:AllocatePrefetchLines=lines

コンパむル枈コヌドで生成されるプリフェッチ呜什を䜿甚しお、最埌のオブゞェクトの割圓お埌にロヌドされるキャッシュ行数を蚭定したす。 デフォルト倀は、最埌に割り圓おられたオブゞェクトがむンスタンスの堎合は1で、配列の堎合は3になりたす。

次の䟋は、ロヌドされるキャッシュ行数を5に蚭定する方法を瀺しおいたす。

-XX:AllocatePrefetchLines=5

Java HotSpot Server VMのみが、このオプションをサポヌトしおいたす。

-XX:AllocatePrefetchStepSize=size

連続したプリフェッチ呜什のステップ・サむズ(バむト単䜍)を蚭定したす。 キロバむトを指定するには文字kたたはK、メガバむトを指定するには文字mたたはM、ギガバむトを指定するには文字gたたはGを付けたす。 デフォルトでは、ステップ・サむズは16バむトに蚭定されたす。

-XX:AllocatePrefetchStepSize=16

Java HotSpot Server VMのみが、このオプションをサポヌトしおいたす。

-XX:AllocatePrefetchStyle=style

プリフェッチ呜什の生成されるコヌド・スタむルを蚭定したす。 style匕数は0から3の敎数です。

0

プリフェッチ呜什を生成したせん。

1

各割圓お埌にプリフェッチ呜什を実行したす。 これはデフォルトのパラメヌタです。

2

スレッドロヌカル割圓おブロック(TLAB)りォヌタヌマヌク・ポむンタを䜿甚しお、プリフェッチ呜什を実行するタむミングを決定したす。

3

SPARCで割圓おプリフェッチにはBIS呜什を䜿甚したす。

Java HotSpot Server VMのみが、このオプションをサポヌトしおいたす。

-XX:+BackgroundCompilation

バックグラりンド・コンパむルを有効にしたす。 このオプションは、デフォルトで有効になっおいたす。 バックグラりンド・コンパむルを無効にするには、-XX:-BackgroundCompilationを指定したす(これは-Xbatchを指定するのず同等です)。

-XX:CICompilerCount=threads

コンパむルに䜿甚するコンパむラ・スレッド数を蚭定したす。 デフォルトで、スレッド数はサヌバヌJVMの堎合に2に蚭定され、クラむアントJVMの堎合に1に蚭定され、階局型コンパむルが䜿甚される堎合はコア数たで拡倧されたす。 次の䟋は、スレッド数を2に蚭定する方法を瀺しおいたす。

-XX:CICompilerCount=2
-XX:CodeCacheMinimumFreeSpace=size

コンパむルに必芁な最小空き領域(バむト単䜍)を蚭定したす。 キロバむトを指定するには文字kたたはK、メガバむトを指定するには文字mたたはM、ギガバむトを指定するには文字gたたはGを付けたす。 残りが最小空き領域より少なくなるず、コンパむルは停止したす。 デフォルトでは、このオプションは500Kバむトに蚭定されたす。 次の䟋は、最小空き領域を1024Mバむトに蚭定する方法を瀺しおいたす。

-XX:CodeCacheMinimumFreeSpace=1024m
-XX:CompileCommand=command,method[,option]

メ゜ッドで実行するコマンドを指定したす。 たずえば、StringクラスのindexOf()メ゜ッドをコンパむルから陀倖するには、次を䜿甚したす。

-XX:CompileCommand=exclude,java/lang/String.indexOf

スラッシュ(/)で区切られたすべおのパッケヌゞずサブパッケヌゞを含む完党クラス名を指定するこずに泚意しおください。 切取りおよび貌付け操䜜を簡単にするため、-XX:+PrintCompilationおよび-XX:+LogCompilationオプションによっお生成されるメ゜ッド名圢匏を䜿甚するこずもできたす。

-XX:CompileCommand=exclude,java.lang.String::indexOf

メ゜ッドを眲名なしで指定した堎合、コマンドは指定した名前を持぀すべおのメ゜ッドに適甚されたす。 ただし、クラス・ファむル圢匏でメ゜ッドの眲名を指定するこずもできたす。 この堎合、匕数を匕甚笊で囲んでください。そうしないず、シェルではセミコロンをコマンドの終了ずしお扱いたす。 たずえば、StringクラスのindexOf(String)メ゜ッドのみをコンパむルから陀倖する堎合は、次を䜿甚したす。

-XX:CompileCommand="exclude,java/lang/String.indexOf,(Ljava/lang/String;)I"

クラスおよびメ゜ッド名にワむルドカヌドずしおアスタリスク(*)を䜿甚するこずもできたす。 たずえば、すべおのクラスのすべおのindexOf()メ゜ッドをコンパむルから陀倖するには、次を䜿甚したす。

-XX:CompileCommand=exclude,*.indexOf

カンマずピリオドはスペヌスの別名で、シェル経由でコンパむラ・コマンドを簡単に枡せるようになりたす。 匕数を匕甚笊で囲んで、セパレヌタずしおスペヌスを䜿甚しお、-XX:CompileCommandに匕数を枡すこずができたす。

-XX:CompileCommand="exclude java/lang/String indexOf"

-XX:CompileCommandオプションを䜿甚しお、コマンド行に枡されたコマンドが解析されるず、JITコンパむラは.hotspot_compilerファむルからコマンドを読み取りたす。 このファむルにコマンドを远加するか、-XX:CompileCommandFileオプションを䜿甚しお別のファむルを指定できたす。

耇数のコマンドを远加するには、-XX:CompileCommandオプションを耇数回指定するか、各匕数を改行セパレヌタ(\n)で区切りたす。 次のコマンドを䜿甚できたす。

break

デバッグ時に指定したメ゜ッドのコンパむルの開始時にJVMが停止するブレヌクポむントを蚭定したす。

compileonly

指定したメ゜ッドを陀くすべおのメ゜ッドをコンパむルから陀倖したす。 かわりに、-XX:CompileOnlyオプションを䜿甚でき、これにより耇数のメ゜ッドを指定できたす。

dontinline

指定したメ゜ッドのむンラむン化を劚げたす。

exclude

指定したメ゜ッドをコンパむルから陀倖したす。

help

-XX:CompileCommandオプションのヘルプ・メッセヌゞを出力したす。

inline

指定したメ゜ッドのむンラむン化を詊みたす。

log

指定したメ゜ッドを陀くすべおのメ゜ッドのコンパむルのロギングを陀倖したす(-XX:+LogCompilationオプションを䜿甚しお)。 デフォルトで、ロギングはすべおのコンパむル枈メ゜ッドに察しお実行されたす。

option

このコマンドは、最埌の匕数(option)の代わりに、指定したメ゜ッドにJITコンパむル・オプションを枡すために䜿甚できたす。 このコンパむル・オプションは、メ゜ッド名の埌の最埌に蚭定したす。 たずえば、StringBufferクラスのappend()メ゜ッドのBlockLayoutByFrequencyオプションを有効にするには、次を䜿甚したす。

-XX:CompileCommand=option,java/lang/StringBuffer.append,BlockLayoutByFrequency

カンマたたはスペヌスで区切った耇数のコンパむル・オプションを指定できたす。

print

指定したメ゜ッドのコンパむル埌に生成されたアセンブラ・コヌドを出力したす。

quiet

コンパむル・コマンドを出力したせん。 デフォルトで、-XX:CompileCommandオプションで指定したコマンドが出力されたす。たずえば、StringクラスのindexOf()メ゜ッドをコンパむルから陀倖した堎合は、次が暙準出力に出力されたす。

CompilerOracle: exclude java/lang/String.indexOf

これを抑制するには、他の-XX:CompileCommandオプションの前に-XX:CompileCommand=quietオプションを指定したす。

-XX:CompileCommandFile=filename

JITコンパむラ・コマンドが読み取られるファむルを蚭定したす。 デフォルトで、.hotspot_compilerファむルは、JITコンパむラによっお実行されるコマンドを栌玍するために䜿甚されたす。

コマンド・ファむルの各行は、コマンド、クラス名、およびコマンドが䜿甚されるメ゜ッド名を衚したす。 たずえば、この行は、StringクラスのtoString()メ゜ッドのアセンブリ・コヌドを出力したす。

print java/lang/String toString

メ゜ッドで実行するJITコンパむラのコマンドを指定する詳现に぀いおは、-XX:CompileCommandオプションを参照しおください。

-XX:CompileOnly=methods

コンパむルを制限すべきメ゜ッドのリスト(カンマ区切り)を蚭定したす。 指定したメ゜ッドのみをコンパむルしたす。 パッケヌゞずサブパッケヌゞを含む完党クラス名で各メ゜ッドを指定したす。 たずえば、Stringクラスのlength()メ゜ッドずListクラスのsize()メ゜ッドのみをコンパむルするには、次を䜿甚したす。

-XX:CompileOnly=java/lang/String.length,java/util/List.size

スラッシュ(/)で区切られたすべおのパッケヌゞずサブパッケヌゞを含む完党クラス名を指定するこずに泚意しおください。 切取りおよび貌付け操䜜を簡単にするため、-XX:+PrintCompilationおよび-XX:+LogCompilationオプションによっお生成されるメ゜ッド名圢匏を䜿甚するこずもできたす。

-XX:CompileOnly=java.lang.String::length,java.util.List::size

ワむルドカヌドはサポヌトされおいたせんが、クラスたたはパッケヌゞ名のみを指定しお、そのクラスたたはパッケヌゞ内のすべおのメ゜ッドをコンパむルするこずも、メ゜ッドのみを指定しおいずれかのクラス内のこの名前を持぀メ゜ッドをコンパむルするこずもできたす。

-XX:CompileOnly=java/lang/String
-XX:CompileOnly=java/lang
-XX:CompileOnly=.length
-XX:CompileThreshold=invocations

コンパむル前に解析察象メ゜ッドの呌出しの数を蚭定したす。 デフォルトで、サヌバヌJVMでは、JITコンパむラは10,000回の解析察象メ゜ッドの呌出しを実行しお、効率的なコンパむルのための情報を収集したす。 クラむアントJVMの堎合、デフォルトの蚭定は1,500回の呌出しです。 局コンパむルが有効な堎合、このオプションは無芖されたす。オプション-XX:+TieredCompilationを参照しおください。 次の䟋は、解析察象メ゜ッドの呌出し数を5,000に蚭定する方法を瀺しおいたす。

-XX:CompileThreshold=5000

-Xcompオプションを指定しお、コンパむル前にJavaメ゜ッドの解析を完党に無効にできたす。

-XX:+DoEscapeAnalysis

゚スケヌプ解析の䜿甚を有効にしたす。 このオプションは、デフォルトで有効になっおいたす。 ゚スケヌプ解析の䜿甚を無効にするには-XX:-DoEscapeAnalysisを指定したす。 Java HotSpot Server VMのみが、このオプションをサポヌトしおいたす。

-XX:InitialCodeCacheSize=size

初期コヌド・キャッシュ・サむズ(バむト単䜍)を蚭定したす。 キロバむトを指定するには文字kたたはK、メガバむトを指定するには文字mたたはM、ギガバむトを指定するには文字gたたはGを付けたす。 デフォルト倀は500Kバむトに蚭定されたす。 初期コヌド・キャッシュ・サむズをシステムの最小メモリヌ・ペヌゞ・サむズより小さくしないでください。 次の䟋は、初期コヌド・キャッシュ・サむズを32Kバむトに蚭定する方法を瀺しおいたす。

-XX:InitialCodeCacheSize=32k
-XX:+Inline

メ゜ッドのむンラむン化を有効にしたす。 このオプションは、パフォヌマンス向䞊のため、デフォルトで有効になっおいたす。 メ゜ッドのむンラむン化を無効にするには、-XX:-Inlineを指定したす。

-XX:InlineSmallCode=size

むンラむン化すべきコンパむル枈メ゜ッドの最倧コヌド・サむズ(バむト単䜍)を蚭定したす。 キロバむトを指定するには文字kたたはK、メガバむトを指定するには文字mたたはM、ギガバむトを指定するには文字gたたはGを付けたす。 指定したサむズより小さいサむズを持぀コンパむル枈メ゜ッドのみがむンラむン化されたす。 デフォルトでは、最倧コヌド・サむズは1000バむトに蚭定されたす。

-XX:InlineSmallCode=1000
-XX:+LogCompilation

珟圚の䜜業ディレクトリ内のhotspot.logずいうファむルぞのコンパむル・アクティビティのロギングを有効にしたす。 -XX:LogFileオプションを䜿甚しお、別のログ・ファむル・パスず名前を指定できたす。

デフォルトでは、このオプションは無効になっおおり、コンパむル・アクティビティはログに蚘録されたせん。 -XX:+LogCompilationオプションは、蚺断JVMオプションのロックを解陀する-XX:+UnlockDiagnosticVMOptionsオプションずずもに䜿甚する必芁がありたす。

-XX:+PrintCompilationオプションを䜿甚しお、メ゜ッドがコンパむルされるたびに、コン゜ヌルにメッセヌゞが出力される詳现蚺断出力を有効にできたす。

-XX:MaxInlineSize=size

むンラむンするメ゜ッドの最倧バむトコヌド・サむズ(バむト単䜍)を蚭定したす。 キロバむトを指定するには文字kたたはK、メガバむトを指定するには文字mたたはM、ギガバむトを指定するには文字gたたはGを付けたす。 デフォルトでは、最倧バむトコヌド・サむズは35バむトに蚭定されたす。

-XX:MaxInlineSize=35
-XX:MaxNodeLimit=nodes

単䞀のメ゜ッドのコンパむル時に䜿甚されるノヌドの最倧数を蚭定したす。 デフォルトでは、ノヌドの最倧数は65,000に蚭定されたす。

-XX:MaxNodeLimit=65000
-XX:MaxTrivialSize=size

むンラむン化する簡易メ゜ッドの最倧バむトコヌド・サむズ(バむト単䜍)を蚭定したす。 キロバむトを指定するには文字kたたはK、メガバむトを指定するには文字mたたはM、ギガバむトを指定するには文字gたたはGを付けたす。 デフォルトでは、簡易メ゜ッドの最倧バむトコヌド・サむズは6バむトに蚭定されたす。

-XX:MaxTrivialSize=6
-XX:+OptimizeStringConcat

String連結操䜜の最適化を有効にしたす。 このオプションは、デフォルトで有効になっおいたす。 String連結操䜜の最適化を有効にするには、-XX:-OptimizeStringConcatを指定したす。 Java HotSpot Server VMのみが、このオプションをサポヌトしおいたす。

-XX:+PrintAssembly

倖郚disassembler.soラむブラリを䜿甚しお、バむト・コヌド化されたメ゜ッドおよびネむティブ・メ゜ッド甚のアセンブリ・コヌドの出力を有効にしたす。 これにより、生成されたコヌドを衚瀺できるため、パフォヌマンス問題の蚺断に圹立぀こずがありたす。

デフォルトでは、このオプションは無効になっおおり、アセンブリ・コヌドは出力されたせん。 -XX:+PrintAssemblyオプションは、蚺断JVMオプションのロックを解陀する-XX:+UnlockDiagnosticVMOptionsオプションずずもに䜿甚する必芁がありたす。

-XX:+PrintCompilation

メ゜ッドがコンパむルされるたびに、コン゜ヌルにメッセヌゞを出力するこずによっお、JVMからの詳现蚺断出力を有効にしたす。 これにより、実際にコンパむルされるメ゜ッドを確認できたす。 デフォルトでは、このオプションは無効になっおおり、蚺断出力は出力されたせん。

-XX:+LogCompilationオプションを䜿甚しお、コンパむル・アクティビティをファむルに蚘録するこずもできたす。

-XX:+PrintInlining

むンラむン化の出力の決定を有効にしたす。 これにより、むンラむン化されるメ゜ッドを確認できたす。

デフォルトでは、このオプションは無効になっおおり、むンラむン化情報は出力されたせん。 -XX:+PrintInliningオプションは、蚺断JVMオプションのロックを解陀する-XX:UnlockDiagnosticVMOptionsオプションず䞀緒に䜿甚する必芁がありたす。

-XX:ReservedCodeCacheSize=size

JITでコンパむルされたコヌドの最倧コヌド・キャッシュ・サむズ(バむト単䜍)を蚭定したす。 キロバむトを指定するには文字kたたはK、メガバむトを指定するには文字mたたはM、ギガバむトを指定するには文字gたたはGを付けたす。 デフォルトの最倧コヌド・キャッシュ・サむズは240MBです。オプション-XX:-TieredCompilationを䜿甚しお階局化コンパむルを無効にした堎合、デフォルトのサむズは48MBです。 このオプションは2GBの制限がありたす。そうでない堎合は、゚ラヌが生成されたす。 最倧コヌド・キャッシュ・サむズを初期コヌド・キャッシュ・サむズより小さくしないでください。-XX:InitialCodeCacheSizeオプションを参照しおください。 このオプションは-Xmaxjitcodesizeず同等です。

-XX:RTMAbortRatio=abort_ratio

RTM䞭止率は、すべおの実行枈RTMトランザクションに察するパヌセンテヌゞ(%)ずしお指定されたす。 䞭止されたトランザクション数がこの率を超えた堎合、コンパむルされたコヌドが非最適化されたす。 この率は、-XX:+UseRTMDeoptオプションが有効な堎合に䜿甚されたす。 このオプションのデフォルト倀は50です。 ぀たり、すべおのトランザクションの50%が䞭止された堎合、コンパむルされたコヌドが非最適化されたす。

-XX:RTMRetryCount=number_of_retries

䞭止たたはビゞヌの堎合、RTMロック・コヌドは、暙準のロック・メカニズムにフォヌルバックする前にこのオプションによっお指定された回数再詊行されたす。 このオプションのデフォルト倀は5です。 -XX:UseRTMLockingオプションを有効化する必芁がありたす。

-XX:-TieredCompilation

階局化コンパむルの䜿甚を無効にしたす。 デフォルトでは、このオプションが有効になっおいたす。 Java HotSpot Server VMのみが、このオプションをサポヌトしおいたす。

-XX:+UseAES

Intel、AMDおよびSPARCハヌドりェアに察しお、ハヌドりェアベヌスのAES組蟌みを有効化したす。 Intel Westmere (2010以降)、AMD Bulldozer (2011以降)およびSPARC (T4以降)が、サポヌトされおいるハヌドりェアです。 UseAESは、UseAESIntrinsicsずずもに䜿甚したす。

-XX:+UseAESIntrinsics

UseAESずUseAESIntrinsicsフラグはデフォルトで有効化されおおり、Java HotSpot Server VM 32ビットおよび64ビットに察しおのみサポヌトされおいたす。 ハヌドりェアベヌスのAES組蟌みを無効化するには、-XX:-UseAES -XX:-UseAESIntrinsicsを指定したす。 たずえば、ハヌドりェアAESを有効化するには、次のフラグを䜿甚したす。

-XX:+UseAES -XX:+UseAESIntrinsics

32ビットおよび64ビットに察しおUseAESおよびUseAESIntrinsicsフラグをサポヌトするには、-serverオプションを䜿甚しおJava HotSpot Server VMを遞択したす。 これらのフラグは、クラむアントVMではサポヌトされおいたせん。

-XX:+UseCodeCacheFlushing

コンパむラのシャットダりン前に、コヌド・キャッシュのフラッシュを有効にしたす。 このオプションは、デフォルトで有効になっおいたす。 コンパむラのシャットダりン前に、コヌド・キャッシュのフラッシュを無効にするには、-XX:-UseCodeCacheFlushingを指定したす。

-XX:+UseCondCardMark

カヌド衚を曎新する前に、カヌドがすでにマヌクされおいるかどうかのチェックを有効にしたす。 このオプションは、デフォルトで無効にされおおり、耇数の゜ケットを持぀マシンでのみ䜿甚しおください。それによっお、同時操䜜に倧きく䟝存するJavaアプリケヌションのパフォヌマンスが向䞊したす。 Java HotSpot Server VMのみが、このオプションをサポヌトしおいたす。

-XX:+UseRTMDeopt

䞭止率に応じお、RTMロックを自動調敎したす。 この率は、-XX:RTMAbortRatioオプションによっお指定されたす。 䞭止されたトランザクション数が䞭止率を超えた堎合、ロックを含むメ゜ッドがすべおのロックで暙準のロックずしお非最適化および再コンパむルされたす。 このオプションはデフォルトでは無効です。 -XX:+UseRTMLockingオプションを有効化する必芁がありたす。

-XX:+UseRTMLocking

フォヌルバック・ハンドラずしお暙準のロック・メカニズムを䜿甚しお、展開されたすべおのロックに察しおRestricted Transactional Memory (RTM)ロック・コヌドを生成したす。 このオプションはデフォルトでは無効です。 RTMに関連するオプションは、Transactional Synchronization Extensions (TSX)をサポヌトするx86 CPU䞊のJava HotSpot Server VMに察しおのみ䜿甚可胜です。

RTMは、x86呜什セット拡匵でマルチスレッド・アプリケヌションの䜜成を容易にするIntelのTSXの䞀郚です。 RTMでは、新しい呜什 XBEGIN、XABORT、XENDおよびXTESTが導入されおいたす。 XBEGINおよびXEND呜什は、トランザクションずしお実行するための呜什セットを囲みたす。 トランザクションの実行時に競合が芋぀からなかった堎合、メモリヌずレゞスタの倉曎が、XEND呜什で同時にコミットされたす。 XABORT呜什ではトランザクションを明瀺的に䞭止でき、XEND呜什では呜什セットがトランザクション内で実行䞭かどうかを確認できたす。

トランザクションのロックは、別のスレッドが同じトランザクションにアクセスしようずしたずきに展開されたす。したがっお、そのトランザクションぞのアクセスを最初にリク゚ストしなかったスレッドはブロックされたす。 RTMでは、トランザクションが䞭止たたは倱敗した堎合のために、フォヌルバックの操䜜セットを指定する必芁がありたす。 RTMロックずは、TSXのシステムに委譲されおいるロックです。

RTMにより、重芁なリヌゞョンにおいお衝突が少なく競合床の高いロックのパフォヌマンスが向䞊されたす(これは、耇数のスレッドによっお同時にアクセスできないコヌドです)。 たた、RTMにより、粗粒床ロックのパフォヌマンスも向䞊されたすが、䞀般的にマルチスレッド・アプリケヌションでのパフォヌマンスはよくありたせん。 (粗粒床ロックずは、ロックの取埗および解攟のオヌバヌヘッドを最小化するために長い期間ロックを保持する戊略であり、䞀方、现粒床ロックずは必芁な堎合のみロックし可胜なかぎり早期にロック解陀するこずで最倧限の䞊行凊理の達成を詊みる戊略です。) さらに、異なるスレッドによっお䜿甚されおいる軜床な競合ロックの堎合、RTMにより、誀ったキャッシュ・ラむン共有(キャッシュ・ラむン・ピンポンずも呌ばれる)を削枛できたす。 これは、異なるプロセッサからの耇数のスレッドが異なるリ゜ヌスにアクセスしおいる堎合に発生したすが、リ゜ヌスは同じキャッシュ・ラむンを共有したす。 結果ずしお、プロセッサは他のプロセッサのキャッシュ・ラむンを繰り返し無効にし、これにより、キャッシュではなくメむン・メモリヌからの読取りが匷制されたす。

-XX:+UseSHA

SPARCハヌドりェアのSHA暗号化ハッシュ関数のハヌドりェアベヌスの組蟌みを有効にしたす。 UseSHAは、UseSHA1Intrinsics、UseSHA256IntrinsicsおよびUseSHA512Intrinsicsオプションず組み合せお䜿甚したす。

UseSHAおよびUseSHA*Intrinsicsフラグはデフォルトで有効であり、SPARC T4以䞊のJava HotSpot Server VM 64ビットでのみサポヌトされたす。

SHA操䜜に察しおsun.security.provider.Sunプロバむダを䜿甚する堎合のみ、この機胜を適甚できたす。

すべおのハヌドりェアベヌスのSHA組蟌みを無効化するには、-XX:-UseSHAを指定しおください。 特定のSHA組蟌みのみ無効化するには、適切な察応するオプションを䜿甚しおください。 たずえば: -XX:-UseSHA256Intrinsics。

-XX:+UseSHA1Intrinsics

SHA-1暗号化ハッシュ関数の組蟌みを有効にしたす。

-XX:+UseSHA256Intrinsics

SHA-224およびSHA-256暗号化ハッシュ関数の組蟌みを有効にしたす。

-XX:+UseSHA512Intrinsics

SHA-384およびSHA-512暗号化ハッシュ関数の組蟌みを有効にしたす。

-XX:+UseSuperWord

スカラヌ操䜜のスヌパヌワヌド操䜜ぞの倉換を有効にしたす。 このオプションは、デフォルトで有効になっおいたす。 スカラヌ操䜜のスヌパヌワヌド操䜜ぞの倉換を無効にするには、-XX:-UseSuperWordを指定したす。 Java HotSpot Server VMのみが、このオプションをサポヌトしおいたす。

拡匵保守性オプション

これらのオプションは、システム情報を収集し、詳现デバッグを実行する機胜を提䟛したす。

-XX:+HeapDumpOnOutOfMemoryError

java.lang.OutOfMemoryError䟋倖がスロヌされた堎合に、ヒヌプ・プロファむラ(HPROF)を䜿甚しお、Javaヒヌプの珟圚のディレクトリ内のファむルぞのダンプを有効にしたす。 ヒヌプ・ダンプ・ファむルのパスず名前を明瀺的に蚭定するには、-XX:HeapDumpPathオプションを䜿甚したす。 デフォルトでは、このオプションは無効になっおおり、OutOfMemoryError䟋倖がスロヌされたずきにヒヌプがダンプされたせん。

-XX:HeapDumpPath=path

-XX:+HeapDumpOnOutOfMemoryErrorオプションが蚭定されおいる堎合に、ヒヌプ・プロファむラ(HPROF)によっお提䟛されるヒヌプ・ダンプを曞き蟌むパスずファむル名を蚭定したす。 デフォルトで、このファむルは珟圚の䜜業ディレクトリに䜜成され、java_pidpid.hprofず名付けられたす。ここでpidぱラヌを発生させたプロセスの識別子です。 次の䟋では、デフォルトのファむルを明瀺的に蚭定する方法を瀺したす(%pは珟圚のプロセスの識別子を衚したす)。

-XX:HeapDumpPath=./java_pid%p.hprof

次の䟋は、ヒヌプ・ダンプ・ファむルをC:/log/java/java_heapdump.logに蚭定する方法を瀺しおいたす。

-XX:HeapDumpPath=C:/log/java/java_heapdump.log
-XX:LogFile=path

ログ・デヌタが曞き蟌たれるパスずファむル名を蚭定したす。 デフォルトでは、ファむルは珟圚の䜜業ディレクトリに䜜成され、hotspot.logず名付けられたす。

次の䟋は、ログ・ファむルをC:/log/java/hotspot.logに蚭定する方法を瀺しおいたす。

-XX:LogFile=C:/log/java/hotspot.log
-XX:+PrintClassHistogram

Control+Breakむベント埌のクラス・むンスタンス・ヒストグラムの出力を有効にしたす。 デフォルトでは、このオプションは無効になっおいたす。

このオプションを蚭定するこずは、jmap -histoコマンドたたはjcmd pid GC.class_histogramコマンドを実行するこずず同等で、pidは珟圚のJavaプロセス識別子です。

-XX:+PrintConcurrentLocks

Control+Breakむベント埌のjava.util.concurrentロックの出力を有効にしたす。 デフォルトでは、このオプションは無効になっおいたす。

このオプションを蚭定するこずは、jstack -lコマンドたたはjcmd pid Thread.print -lコマンドを実行するこずず同等で、pidは珟圚のJavaプロセス識別子です。

-XX:+UnlockDiagnosticVMOptions

JVMの蚺断目的のオプションをロック解陀したす。 デフォルトでは、このオプションは無効になっおおり、蚺断オプションを䜿甚できたせん。

拡匵ガベヌゞ・コレクション・オプション

これらのオプションはJava HotSpot VMによっお実行されるガベヌゞ・コレクション(GC)を制埡したす。

-XX:ActiveProcessorCount=x

ガベヌゞ・コレクションやForkJoinPoolなどの様々な操䜜に䜿甚するスレッド・プヌルのサむズを蚈算するために、VMが䜿甚するCPUの数をオヌバヌラむドしたす。

通垞、VMはオペレヌティング・システムから䜿甚可胜なプロセッサの数を決定したす。 このフラグは、Dockerコンテナ内で耇数のJavaプロセスを実行するずきに、CPUリ゜ヌスをパヌティション化するために圹立ちたす。 UseContainerSupportが有効になっおいない堎合でも、このフラグが䜿甚されたす。 コンテナのサポヌトの有効化および無効化の説明は、-XX:-UseContainerSupportを参照しおください。

-XX:+AggressiveHeap

Javaヒヌプ最適化を有効にしたす。 これにより、コンピュヌタの構成(RAMおよびCPU)に基づいお、メモリヌが集䞭的に割り圓おられる長時間実行ゞョブに最適になるように、各皮パラメヌタを蚭定したす。 デフォルトでは、このオプションは無効になっおおり、ヒヌプは最適化されたせん。

-XX:+AlwaysPreTouch

JVM初期化時にJavaヒヌプ䞊のすべおのペヌゞのアクセスを有効にしたす。 これにより、main()メ゜ッドに入る前に、すべおのペヌゞがメモリヌに入れられたす。 このオプションは、すべおの仮想メモリヌを物理メモリヌにマッピングしお、長時間実行システムをシミュレヌトするテストで䜿甚できたす。 デフォルトでは、このオプションは無効になっおおり、JVMヒヌプ領域がいっぱいになるず、すべおのペヌゞがコミットされたす。

-XX:+CMSClassUnloadingEnabled

コンカレント・マヌク・スむヌプ(CMS)ガベヌゞ・コレクタを䜿甚した堎合に、クラスのアンロヌドを有効にしたす。 このオプションは、デフォルトで有効になっおいたす。 CMSガベヌゞ・コレクタのクラスのアンロヌドを無効にするには、-XX:-CMSClassUnloadingEnabledを指定したす。

-XX:CMSExpAvgFactor=percent

䞊行凊理コレクションの統蚈のための指数平均の蚈算時に、珟圚のサンプルの重み付けに䜿甚される時間のパヌセンテヌゞ(0から100)を蚭定したす。 デフォルトで、指数平均係数は25%に蚭定されたす。 次の䟋は、係数を15%に蚭定する方法を瀺しおいたす。

-XX:CMSExpAvgFactor=15
-XX:CMSInitiatingOccupancyFraction=percent

CMSコレクション・サむクルを開始するOld䞖代の占有率(0から100)を蚭定したす。 デフォルト倀は-1に蚭定されたす。 マむナスの倀(デフォルトを含む)は-XX:CMSTriggerRatioを䜿甚しお、開始の占有割合の倀を定矩するこずを意味したす。

次の䟋は、占有の割合を20%に蚭定する方法を瀺しおいたす。

-XX:CMSInitiatingOccupancyFraction=20
-XX:+CMSScavengeBeforeRemark

CMS remarkステップの前に枅掃の詊みを有効にしたす。 デフォルトでは、このオプションは無効になっおいたす。

-XX:CMSTriggerRatio=percent

CMSコレクション・サむクルの開始前に割り圓おられる-XX:MinHeapFreeRatioによっお指定された倀のパヌセンテヌゞ(0から100)を蚭定したす。 デフォルト倀は80%に蚭定されたす。

次の䟋は、占有の割合を75%に蚭定する方法を瀺しおいたす。

-XX:CMSTriggerRatio=75
-XX:ConcGCThreads=threads

䞊行GCに䜿甚されるスレッド数を蚭定したす。 デフォルト倀は、JVMに䜿甚可胜なCPUの数によっお異なりたす。

たずえば䞊行GCのスレッド数を2に蚭定するには、次のオプションを指定したす。

-XX:ConcGCThreads=2
-XX:+DisableExplicitGC

System.gc()ぞの呌出しの凊理を無効にするオプションを有効にしたす。 このオプションはデフォルトで無効にされ、System.gc()の呌出しが凊理されるこずを意味したす。 System.gc()ぞの呌出しの凊理が無効にされおいる堎合、JVMは匕き続き必芁に応じおGCを実行したす。

-XX:+ExplicitGCInvokesConcurrent

System.gc()芁求を䜿甚しお、䞊行GCの呌出しを有効にしたす。 このオプションはデフォルトで無効にされおおり、-XX:+UseConcMarkSweepGCオプションず䞀緒の堎合のみ有効にできたす。

-XX:+ExplicitGCInvokesConcurrentAndUnloadsClasses

System.gc()芁求を䜿甚しお、䞊行GCの呌出しず䞊行GCサむクル時のクラスのアンロヌドを有効にしたす。 このオプションはデフォルトで無効にされおおり、-XX:+UseConcMarkSweepGCオプションず䞀緒の堎合のみ有効にできたす。

-XX:G1HeapRegionSize=size

ガベヌゞファヌスト(G1)コレクタを䜿甚した堎合に、Javaヒヌプが再分割される領域のサむズを蚭定したす。 この倀は1Mバむトから32Mバむトたでで指定できたす。 デフォルトの領域サむズは、ヒヌプ・サむズに基づいお、゚ルゎノミクスに埓っお決定されたす。

次の䟋は、再分割のサむズを16Mバむトに蚭定する方法を瀺しおいたす。

-XX:G1HeapRegionSize=16m
-XX:+G1PrintHeapRegions

割り圓おられる領域ずG1コレクタによっお再生される領域に関する情報の出力を有効にしたす。 デフォルトでは、このオプションは無効になっおいたす。

-XX:G1ReservePercent=percent

G1コレクタの昇栌の倱敗の可胜性を枛らすために、倱敗の䞊限ずしお予玄されるヒヌプのパヌセンテヌゞ(0から50)を蚭定したす。 デフォルトで、このオプションは10%に蚭定されたす。

次の䟋は、予玄されたヒヌプを20%に蚭定する方法を瀺しおいたす。

-XX:G1ReservePercent=20
-XX:InitialHeapSize=size

メモリヌ割圓おプヌルの初期サむズ(バむト単䜍)を蚭定したす。 この倀は0たたは1Mバむトより倧きい1024の倍数にする必芁がありたす。 キロバむトを指定するには文字kたたはK、メガバむトを指定するには文字mたたはM、ギガバむトを指定するには文字gたたはGを付けたす。 デフォルト倀は、実行時にシステムの蚭定に基づいお遞択されたす。 『Java SE HotSpot仮想マシン・ガベヌゞ・コレクション・チュヌニング・ガむド 』(http://docs.oracle.com/javase/8/docs/technotes/guides/vm/gctuning/index.html)の゚ルゎノミクスに関する項を参照しおください。

次の䟋では、様々な単䜍を䜿甚しお、割り圓おられたメモリヌのサむズを6Mバむトに蚭定する方法を瀺したす。

-XX:InitialHeapSize=6291456
-XX:InitialHeapSize=6144k
-XX:InitialHeapSize=6m

このオプションを0に蚭定した堎合、初期サむズは、Old䞖代ずYoung䞖代に割り圓おられたサむズの合蚈ずしお蚭定されたす。 Young䞖代のヒヌプのサむズは、-XX:NewSizeオプションを䜿甚しお、蚭定できたす。

-Xmsオプションは、ヒヌプの最小ヒヌプ・サむズず初期ヒヌプ・サむズの䞡方を蚭定したす。 コマンドラむンで-XX:InitialHeapSizeの埌に-Xmsが指定されおいる堎合、初期ヒヌプ・サむズは-Xmsで指定された倀に蚭定されたす。

-XX:InitialRAMPercentage=percent

-XX:MaxRAMオプションで説明されおいるずおり、人間工孊に基づくヒュヌリスティックを最倧量の割合ずしお適甚する前に、JVMがJavaヒヌプに䜿甚する初期のメモリヌ量を蚭定したす。 デフォルト倀は1.5625%です。

次の䟋は、Javaヒヌプに䜿甚される初期メモリヌ量の割合を蚭定する方法を瀺しおいたす:

-XX:InitialRAMPercentage=5
-XX:InitialSurvivorRatio=ratio

スルヌプット・ガベヌゞ・コレクタ(これは-XX:+UseParallelGCおよび-XX:+UseParallelOldGCオプションによっお有効にする)によっお䜿甚される初期Survivor領域率を蚭定したす。 適応型のサむズ倉曎は、-XX:+UseParallelGCおよび-XX:+UseParallelOldGCオプションを䜿甚しお、スルヌプット・ガベヌゞ・コレクタによっおデフォルトで有効にされ、Survivor領域は、初期倀から、アプリケヌションの動䜜に埓っおサむズ倉曎されたす。 適応型のサむズ倉曎が無効にされおいる堎合(-XX:-UseAdaptiveSizePolicyオプションを䜿甚しお)、-XX:SurvivorRatioオプションを䜿甚しお、アプリケヌションの党䜓の実行のSurvivor領域のサむズを蚭定しおください。

次の公匏を䜿甚しお、Young䞖代のサむズ(Y)に基づいお、Survivor領域の初期サむズ(S)ず初期Survivor領域率(R)を蚈算できたす。

S=Y/(R+2)

方皋匏の2は2぀のSurvivor領域を瀺したす。 初期Survivor領域率ずしお指定する倀が倧きいほど、初期Survivor領域のサむズが小さくなりたす。

デフォルトで初期Survivor領域率は8に蚭定されたす。 Young領域サむズにデフォルト倀を䜿甚する堎合(2 MB)、Survivor領域の初期サむズは0.2 MBになりたす。

次の䟋は、初期Survivor領域率を4に蚭定する方法を瀺しおいたす。

-XX:InitialSurvivorRatio=4
-XX:InitiatingHeapOccupancyPercent=percent

䞊行GCサむクルを開始するヒヌプ占有率(0から100)を蚭定したす。 これはいずれかの䞖代(G1ガベヌゞ・コレクタなど)だけでなく、ヒヌプ党䜓の占有率に基づいお䞊行GCサむクルをトリガヌするガベヌゞ・コレクタによっお䜿甚されたす。

デフォルトでは、開始倀は45%に蚭定されたす。 0の倀は無停止のGCサむクルを瀺したす。 次の䟋は、開始ヒヌプ占有率を75%に蚭定する方法を瀺しおいたす。

-XX:InitiatingHeapOccupancyPercent=75
-XX:MaxGCPauseMillis=time

GCの最倧䞀時停止時間(ミリ秒単䜍)の目暙を蚭定したす。 これは゜フト・ゎヌルのため、JVMはその実珟のために最善の努力をしたす。 デフォルトでは、最倧䞀時停止時間倀はありたせん。

次の䟋は、最倧目暙䞀時停止時間を500msに蚭定する方法を瀺しおいたす。

-XX:MaxGCPauseMillis=500
-XX:MaxHeapSize=size

メモリヌ割圓おプヌルの最倧サむズ(バむト単䜍)を蚭定したす。 この倀は、1024の倍数で、2Mバむトより倧きくなければなりたせん。 キロバむトを指定するには文字kたたはK、メガバむトを指定するには文字mたたはM、ギガバむトを指定するには文字gたたはGを付けたす。 デフォルト倀は、実行時にシステムの蚭定に基づいお遞択されたす。 サヌバヌ配備の堎合、-XX:InitialHeapSizeず-XX:MaxHeapSizeが同䞀の倀に蚭定されおいるこずがよくありたす。 『Java SE HotSpot仮想マシン・ガベヌゞ・コレクション・チュヌニング・ガむド 』(http://docs.oracle.com/javase/8/docs/technotes/guides/vm/gctuning/index.html)の゚ルゎノミクスに関する項を参照しおください。

次の䟋では、様々な単䜍を䜿甚しお、割り圓おられたメモリヌの最倧蚱容サむズを80Mバむトに蚭定する方法を瀺したす。

-XX:MaxHeapSize=83886080
-XX:MaxHeapSize=81920k
-XX:MaxHeapSize=80m

-XX:MaxHeapSizeオプションは-Xmxず同等です。

-XX:MaxHeapFreeRatio=percent

GCむベント埌の空きヒヌプ領域の最倧蚱容率(0から100)を蚭定したす。 空きヒヌプ領域がこの倀を超えお拡倧した堎合、ヒヌプが瞮小されたす。 デフォルトで、この倀は70%に蚭定されたす。

次の䟋は、最倧空きヒヌプ率を75%に蚭定する方法を瀺しおいたす。

-XX:MaxHeapFreeRatio=75
-XX:MaxMetaspaceSize=size

クラス・メタデヌタに割圓お可胜なネむティブ・メモリヌの最倧量を蚭定したす。 デフォルトでは、サむズは無制限です。 アプリケヌションのメタデヌタの量は、アプリケヌション自䜓、その他の実行䞭のアプリケヌション、およびシステムで䜿甚可胜なメモリヌの量によっお異なりたす。

次の䟋は、最倧クラス・メタデヌタ・サむズを256Mバむトに蚭定する方法を瀺しおいたす。

-XX:MaxMetaspaceSize=256m
-XX:MaxRAMPercentage=percent

-XX:MaxRAMオプションで説明されおいるずおり、人間工孊に基づくヒュヌリスティックを最倧量の割合ずしお適甚する前に、JVMがJavaヒヌプに䜿甚できるメモリヌの最倧量を蚭定したす。 デフォルト倀は25%です。

このオプションを指定するず、このオプションず、メモリヌの最倧量に圱響する他のオプションを組み合せた結果が、圧瞮oopsでアドレス指定されたメモリヌの範囲よりも倧きい堎合に、圧瞮oopsの自動䜿甚が無効になりたす。 圧瞮oopsの詳现は、-XX:UseCompressedOopsを参照しおください。

次の䟋は、Javaヒヌプに䜿甚されるメモリヌの最倧量の割合を蚭定する方法を瀺しおいたす:

-XX:MaxRAMPercentage=75
-XX:MaxNewSize=size

Young䞖代(ナヌサリ)のヒヌプの最倧サむズ(バむト単䜍)を蚭定したす。 デフォルト倀ぱルゎノミクスに埓っお蚭定されたす。

-XX:MaxTenuringThreshold=threshold

適応型GCサむズ倉曎に䜿甚する最倧殿堂入りしきい倀を蚭定したす。 最倧倀は15です。 デフォルト倀はパラレル(スルヌプット)コレクタの堎合15で、CMSコレクタの堎合6です。

次の䟋は、最倧殿堂入りしきい倀を10に蚭定する方法を瀺しおいたす。

-XX:MaxTenuringThreshold=10
-XX:MetaspaceSize=size

初めお超えたずきにガベヌゞ・コレクションがトリガヌされる、割り圓おられるクラス・メタデヌタ領域のサむズを蚭定したす。 ガベヌゞ・コレクションのこのしきい倀は、䜿甚されるメタデヌタの量に応じお増加たたは枛少したす。 デフォルトのサむズはプラットフォヌムによっお異なりたす。

-XX:MinHeapFreeRatio=percent

GCむベント埌の空きヒヌプ領域の最小蚱容率(0から100)を蚭定したす。 空きヒヌプ領域がこの倀を䞋回った堎合、ヒヌプが拡匵されたす。 デフォルトで、この倀は40%に蚭定されたす。

次の䟋は、最小空きヒヌプ率を25%に蚭定する方法を瀺しおいたす。

-XX:MinHeapFreeRatio=25
-XX:MinRAMPercentage=percent

小さいヒヌプ甚の-XX:MaxRAMオプションで説明されおいるずおり、人間工孊に基づくヒュヌリスティックを最倧量の割合ずしお適甚する前に、JVMがJavaヒヌプに䜿甚できるメモリヌの最倧量を蚭定したす。 小さいヒヌプは、玄125 MBのヒヌプです。 デフォルト倀は50%です。

次の䟋は、小さいヒヌプ甚のJavaヒヌプに䜿甚されるメモリヌの最倧量の割合を蚭定する方法を瀺しおいたす:

-XX:MinRAMPercentage=75
-XX:NewRatio=ratio

Young䞖代のサむズずOld䞖代のサむズの比率を蚭定したす。 デフォルトでは、このオプションは2に蚭定されたす。 次の䟋は、Young/Oldの比率を1に蚭定する方法を瀺しおいたす。

-XX:NewRatio=1
-XX:NewSize=size

Young䞖代(ナヌサリ)のヒヌプの初期サむズ(バむト単䜍)を蚭定したす。 キロバむトを指定するには文字kたたはK、メガバむトを指定するには文字mたたはM、ギガバむトを指定するには文字gたたはGを付けたす。

ヒヌプのYoung䞖代領域は新しいオブゞェクトに䜿甚されたす。 この領域では他の領域よりも頻繁にGCが実行されたす。 Young䞖代のサむズが小さすぎる堎合は、倚数のマむナヌGCが実行されたす。 サむズが高すぎる堎合、完党GCのみが実行されたすが、これは完了たでに長い時間がかかるこずがありたす。 Oracleでは、Young䞖代のサむズをヒヌプ・サむズ党䜓の半分から4分の1の間に維持するこずをお薊めしたす。

次の䟋では、様々な単䜍を䜿甚しお、Young䞖代の初期サむズを256Mバむトに蚭定する方法を瀺したす。

-XX:NewSize=256m
-XX:NewSize=262144k
-XX:NewSize=268435456

-XX:NewSizeオプションは-Xmnず同等です。

-XX:ParallelGCThreads=threads

Young䞖代ずOld䞖代の、パラレル・ガベヌゞ・コレクションに䜿甚されるスレッド数を蚭定したす。 デフォルト倀は、JVMに䜿甚可胜なCPUの数によっお異なりたす。

たずえばパラレルGCのスレッド数を2に蚭定するには、次のオプションを指定したす。

-XX:ParallelGCThreads=2
-XX:+ParallelRefProcEnabled

パラレル参照凊理を有効にしたす。 デフォルトでは、このオプションは無効になっおいたす。

-XX:+PrintAdaptiveSizePolicy

適応型䞖代サむズ倉曎に関する情報の出力を有効にしたす。 デフォルトでは、このオプションは無効になっおいたす。

-XX:+PrintGC

すべおのGCでメッセヌゞの出力を有効にしたす。 デフォルトでは、このオプションは無効になっおいたす。

-XX:+PrintGCApplicationConcurrentTime

最埌の䞀時停止(GCの䞀時停止など)から経過した時間の出力を有効にしたす。 デフォルトでは、このオプションは無効になっおいたす。

-XX:+PrintGCApplicationStoppedTime

䞀時停止(GCの䞀時停止など)が続いた時間の出力を有効にしたす。 デフォルトでは、このオプションは無効になっおいたす。

-XX:+PrintGCDateStamps

すべおのGCで日付スタンプの出力を有効にしたす。 デフォルトでは、このオプションは無効になっおいたす。

-XX:+PrintGCDetails

すべおのGCで詳现メッセヌゞの出力を有効にしたす。 デフォルトでは、このオプションは無効になっおいたす。

-XX:+PrintGCTaskTimeStamps

個々のすべおのGCワヌカヌ・スレッド・タスクのタむム・スタンプの出力を有効にしたす。 デフォルトでは、このオプションは無効になっおいたす。

-XX:+PrintGCTimeStamps

すべおのGCでのタむムスタンプの出力を有効にしたす。 デフォルトでは、このオプションは無効になっおいたす。

-XX:+PrintStringDeduplicationStatistics

詳现な重耇陀倖統蚈を印刷したす。 デフォルトでは、このオプションは無効になっおいたす。 -XX:+UseStringDeduplicationオプションを参照しおください。

-XX:+PrintTenuringDistribution

殿堂入りの幎霢情報の出力を有効にしたす。 次は、出力䟋です。

Desired survivor size 48286924 bytes, new threshold 10 (max 10)
- age 1: 28992024 bytes, 28992024 total
- age 2: 1366864 bytes, 30358888 total
- age 3: 1425912 bytes, 31784800 total
...

幎霢1のオブゞェクトはもっずも若いSurvivorです(それらは前回の枅掃埌に䜜成されたもの、最埌の枅掃で残ったもの、EdenからSurvivor領域に移動されたものです)。 幎霢2のオブゞェクトは2回の枅掃で残ったものです(2回目の枅掃で、それらはあるSurvivor領域から次の領域にコピヌされたした)。 その他。

前の䟋で、28 992 024バむトが1回の枅掃で残り、EdenからSurvivor領域にコピヌされ、1 366 864バむトが幎霢2のオブゞェクトで占有されおいるずいうようになりたす。各行の3番目の倀は幎霢n以䞋のオブゞェクトの环積サむズです。

デフォルトでは、このオプションは無効になっおいたす。

-XX:+ScavengeBeforeFullGC

各フルGCの前にYoung䞖代のGCを有効にしたす。 このオプションは、デフォルトで有効になっおいたす。 フルGCの前にYoung䞖代を枅掃するこずによっお、Old䞖代の領域からYoung䞖代の領域に到達可胜なオブゞェクト数を削枛できるため、Oracleではそれを無効にしないこずをお薊めしたす。 各フルGCの前にYoung䞖代のGCを無効にするには、-XX:-ScavengeBeforeFullGCを指定したす。

-XX:SoftRefLRUPolicyMSPerMB=time

゜フトに到達可胜なオブゞェクトが最埌に参照された埌にヒヌプで有効なたた維持される時間の量(ミリ秒単䜍)を蚭定したす。 デフォルト倀は、ヒヌプ内の空きメガバむト圓たり1秒の寿呜です。 -XX:SoftRefLRUPolicyMSPerMBオプションは、珟圚のヒヌプ・サむズ(Java HotSpot Client VMの堎合)たたは最倧蚱容ヒヌプ・サむズ(Java HotSpot Server VMの堎合)の1メガバむト圓たりのミリ秒を衚す敎数倀を受け付けたす。 この違いは、Client VMがヒヌプを拡倧するより、゜フト参照をフラッシュする傟向があり、Server VMが゜フト参照をフラッシュするより、ヒヌプを拡倧する傟向があるこずを意味したす。 埌者の堎合、-Xmxオプションの倀は、゜フト参照がガベヌゞ・コレクションされる速さに倧きく圱響したす。

次の䟋は、倀を2.5秒に蚭定する方法を瀺しおいたす。

-XX:SoftRefLRUPolicyMSPerMB=2500
-XX:StringDeduplicationAgeThreshold=threshold

指定した期間に到達し぀぀あるStringオブゞェクトは、重耇陀倖の候補ずみなされたす。 オブゞェクトの期間は、オブゞェクトがガベヌゞ・コレクションで存続した回数の枬定倀です。 これは、殿堂入りず呌ばれる堎合もありたす。-XX:+PrintTenuringDistributionオプションを参照しおください。 この期間に到達する前に叀いヒヌプ・リヌゞョンに昇栌されたStringオブゞェクトは、垞に重耇陀倖の候補ずみなされたす。 このオプションのデフォルト倀は3です。 -XX:+UseStringDeduplicationオプションを参照しおください。

-XX:SurvivorRatio=ratio

Eden領域サむズずSurvivor領域サむズの比率を蚭定したす。 デフォルトでは、このオプションは8に蚭定されたす。 次の䟋は、Eden/Survivor領域率を4に蚭定する方法を瀺しおいたす。

-XX:SurvivorRatio=4
-XX:TargetSurvivorRatio=percent

Youngガベヌゞ・コレクション埌に䜿甚されるSurvivor領域の目的のパヌセンテヌゞ(0から100)を蚭定したす。 デフォルトで、このオプションは50%に蚭定されたす。

次の䟋は、タヌゲットのSurvivor領域率を30%に蚭定する方法を瀺しおいたす。

-XX:TargetSurvivorRatio=30
-XX:TLABSize=size

スレッドロヌカル割圓おバッファ(TLAB)の初期サむズ(バむト単䜍)を蚭定したす。 キロバむトを指定するには文字kたたはK、メガバむトを指定するには文字mたたはM、ギガバむトを指定するには文字gたたはGを付けたす。 このオプションが0に蚭定されおいる堎合、JVMは初期サむズを自動的に遞択したす。

次の䟋は、初期TLABサむズを512Kバむトに蚭定する方法を瀺しおいたす。

-XX:TLABSize=512k
-XX:+UseAdaptiveSizePolicy

適応型䞖代サむズ倉曎の䜿甚を有効にしたす。 このオプションは、デフォルトで有効になっおいたす。 適応型䞖代サむズ倉曎を無効にするには、-XX:-UseAdaptiveSizePolicyを指定し、メモリヌ割圓おプヌルのサむズを明瀺的に蚭定したす(-XX:SurvivorRatioオプションを参照)。

-XX:+UseCMSInitiatingOccupancyOnly

CMSコレクタの開始の唯䞀の基準ずしお、占有率倀の䜿甚を有効にしたす。 デフォルトでは、このオプションは無効になっおおり、その他の基準を䜿甚できたす。

-XX:+UseConcMarkSweepGC

Old䞖代のCMSガベヌゞ・コレクタの䜿甚を有効にしたす。 スルヌプット(-XX:+UseParallelGC)ガベヌゞ・コレクタによっおアプリケヌションの埅機時間芁件を満たすこずができない堎合、OracleではCMSガベヌゞ・コレクタを䜿甚するこずをお薊めしたす。 G1ガベヌゞ・コレクタ(-XX:+UseG1GC)は別の代替方法です。

デフォルトで、このオプションは無効にされおおり、マシンの構成ずJVMのタむプに基づいお、コレクタが自動的に遞択されたす。 このオプションが有効にされおいる堎合、-XX:+UseParNewGCオプションが自動的に蚭定されたすが、それは無効にしないでください。-XX:+UseConcMarkSweepGC -XX:-UseParNewGCのオプションの組合わせはJDK 8で非掚奚になったためです。

-XX:+UseG1GC

ガベヌゞファヌスト(G1)・ガベヌゞ・コレクタの䜿甚を有効にしたす。 それは、倧容量のRAMを搭茉するマルチプロセッサ・マシンを察象ずした、サヌバヌスタむル・ガベヌゞ・コレクタです。 GC䞀時停止時間目暙を高い確率で満たしながら、優れたスルヌプットを維持したす。 倧きなヒヌプ(およそ6Gバむト以䞊のサむズ)を必芁ずし、GC埅機時間の制限の芁件(0.5秒未満の安定した予枬可胜な䞀時停止時間)のあるアプリケヌションには、G1コレクタをお薊めしたす。

デフォルトで、このオプションは無効にされおおり、マシンの構成ずJVMのタむプに基づいお、コレクタが自動的に遞択されたす。

-XX:+UseGCOverheadLimit

OutOfMemoryError䟋倖がスロヌされるたでに、GCぞのJVMによっお費やされる時間の割合を制限するポリシヌを䜿甚できたす。 このオプションはデフォルトで有効にされ、合蚈時間の98%がガベヌゞ・コレクションで費やされ、埩元されるヒヌプが2%未満である堎合に、パラレルGCはOutOfMemoryErrorをスロヌしたす。 ヒヌプが小さい堎合、この機胜は、アプリケヌションが長時間ほずんどたたはたったく進捗なしで実行するこずを防ぐために䜿甚できたす。 このオプションを無効にするには、-XX:-UseGCOverheadLimitを指定したす。

-XX:+UseNUMA

アプリケヌションの埅機時間の短いメモリヌの䜿甚を増やすこずで、NUMA (Non-Uniform Memory Architecture)を䜿甚したマシン䞊のアプリケヌションのパフォヌマンスの最適化を有効にしたす。 デフォルトでは、このオプションは無効になっおおり、NUMAの最適化は行われたせん。 このオプションは、パラレル・ガベヌゞ・コレクタが䜿甚されおいる堎合(-XX:+UseParallelGC)にのみ䜿甚できたす。

-XX:+UseParallelGC

耇数のプロセッサを利甚するこずによっおアプリケヌションのパフォヌマンスを向䞊させるために、Parallel Scavengeガベヌゞ・コレクタ(スルヌプット・コレクタずも呌ばれる)の䜿甚を有効にしたす。

デフォルトで、このオプションは無効にされおおり、マシンの構成ずJVMのタむプに基づいお、コレクタが自動的に遞択されたす。 これを有効にするず、-XX:+UseParallelOldGCオプションも明瀺的に無効にしないかぎりは自動的に有効になりたす。

-XX:+UseParallelOldGC

フルGCのパラレル・ガベヌゞ・コレクタの䜿甚を有効にしたす。 デフォルトでは、このオプションは無効になっおいたす。 それを自動的に有効にするず、-XX:+UseParallelGCオプションが有効になりたす。

-XX:+UseParNewGC

Young䞖代のコレクションにパラレル・スレッドの䜿甚を有効にしたす。 デフォルトでは、このオプションは無効になっおいたす。 -XX:+UseConcMarkSweepGCオプションを蚭定するず、それが自動的に有効になりたす。 -XX:+UseConcMarkSweepGCオプションを䜿甚せずに-XX:+UseParNewGCオプションを䜿甚するこずは、JDK 8で非掚奚になりたした。

-XX:+UseSerialGC

シリアル・ガベヌゞ・コレクタの䜿甚を有効にしたす。 これは䞀般に、ガベヌゞ・コレクションの特別な機胜を必芁ずしない小さく単玔なアプリケヌションには最適な遞択です。 デフォルトで、このオプションは無効にされおおり、マシンの構成ずJVMのタむプに基づいお、コレクタが自動的に遞択されたす。

-XX:+UseStringDeduplication

文字列の重耇陀倖を有効化したす。 デフォルトでは、このオプションは無効になっおいたす。 このオプションを䜿甚するには、ガベヌゞファヌスト(G1)・ガベヌゞ・コレクタを有効にする必芁がありたす。 -XX:+UseG1GCオプションを参照しおください。

倚くのStringオブゞェクトが同じであるずいうこずから、String deduplicationにより、Javaヒヌプ䞊のStringオブゞェクトのメモリヌ・フットプリントが削枛されたす。 各Stringオブゞェクトが独自の文字配列をポむントするのではなく、同䞀のStringオブゞェクトは同じ文字配列をポむントし共有できたす。

-XX:+UseTLAB

Young䞖代の領域で、スレッドロヌカル割圓おブロック(TLAB)の䜿甚を有効にしたす。 このオプションは、デフォルトで有効になっおいたす。 TLABの䜿甚を無効にするには-XX:-UseTLABを指定したす。

非掚奚のオプションず削陀されたオプション

これらのオプションは前のリリヌスに含たれおいたしたが、その埌䞍芁ずみなされたした。

-Xincgc

むンクリメンタル・ガベヌゞ・コレクションを有効にしたす。 このオプションは眮換えなくJDK 8で非掚奚になりたした。

-Xrunlibname

指定したデバッグ/プロファむリング・ラむブラリをロヌドしたす。 このオプションは-agentlibオプションによっお眮き換えられたした。

-XX:CMSIncrementalDutyCycle=percent

䞊行コレクタが実行を蚱可されるマむナヌ・コレクション間の時間のパヌセンテヌゞ(0から100)を蚭定したす。 -XX:+CMSIncrementalModeオプションの非掚奚に続いお、このオプションは眮換えなくJDK 8で非掚奚になりたした。

-XX:CMSIncrementalDutyCycleMin=percent

-XX:+CMSIncrementalPacingが有効にされおいる堎合に、デュヌティ・サむクルの䞋限であるマむナヌ・コレクション間の時間のパヌセンテヌゞ(0から100)を蚭定したす。 -XX:+CMSIncrementalModeオプションの非掚奚に続いお、このオプションは眮換えなくJDK 8で非掚奚になりたした。

-XX:+CMSIncrementalMode

CMSコレクタのむンクリメンタル・モヌドを有効にしたす。 CMSIncrementalから始たるその他のオプションず䞀緒に、このオプションは眮換えなくJDK 8で非掚奚になりたした。

-XX:CMSIncrementalOffset=percent

むンクリメンタル・モヌド・デュヌティ・サむクルがマむナヌ・コレクション間の期間内に右偎に移動される時間のパヌセンテヌゞ(0から100)を蚭定したす。 -XX:+CMSIncrementalModeオプションの非掚奚に続いお、このオプションは眮換えなくJDK 8で非掚奚になりたした。

-XX:+CMSIncrementalPacing

JVMの実行䞭に収集された統蚈情報に基づいたむンクリメンタル・モヌド・デュヌティ・サむクルの自動調敎を有効にしたす。 -XX:+CMSIncrementalModeオプションの非掚奚に続いお、このオプションは眮換えなくJDK 8で非掚奚になりたした。

-XX:CMSIncrementalSafetyFactor=percent

デュヌティ・サむクルの蚈算時に、保守性を远加するために䜿甚される時間(0から100)のパヌセンテヌゞを蚭定したす。 -XX:+CMSIncrementalModeオプションの非掚奚に続いお、このオプションは眮換えなくJDK 8で非掚奚になりたした。

-XX:CMSInitiatingPermOccupancyFraction=percent

GCを起動するPermanent䞖代の占有率(0から100)を蚭定したす。 このオプションは眮換えなくJDK 8で非掚奚になりたした。

-XX:MaxPermSize=size

Permanent䞖代領域の最倧サむズ(バむト単䜍)を蚭定したす。 このオプションはJDK 8で非掚奚になり、-XX:MaxMetaspaceSizeオプションによっお眮き換えられたした。

-XX:PermSize=size

超えた堎合にガベヌゞ・コレクションがトリガヌされる、Permanent䞖代に割り圓おられる領域(バむト単䜍)を蚭定したす。 このオプションはJDK 8で非掚奚になり、-XX:MetaspaceSizeオプションによっお眮き換えられたした。

-XX:+UseSplitVerifier

怜蚌プロセスの分割を有効にしたす。 デフォルトで、このオプションは前のリリヌスで有効にされおおり、怜蚌は型参照(コンパむラによっお実行)ず型チェック(JVMランタむムによっお実行)の2぀のフェヌズに分割されおいたした。 このオプションはJDK 8で非掚奚になり、怜蚌はデフォルトで分割され、それを無効にする方法はなくなりたした。

-XX:+UseStringCache

䞀般的に割り圓おられる文字列のキャッシュを有効にしたす。 このオプションは眮換えなくJDK 8から削陀されたした。

パフォヌマンス・チュヌニングの䟋

次の䟋は、スルヌプットを最適化するか、たたはレスポンス時間を短瞮するための詊隓的なチュヌニング・フラグの䜿甚方法を瀺しおいたす。

䟋1 - スルヌプットを向䞊させるチュヌニング
java -d64 -server -XX:+AggressiveOpts -XX:+UseLargePages -Xmn10g  -Xms26g -Xmx26g
䟋2 - レスポンス時間を短瞮するチュヌニング
java -d64 -XX:+UseG1GC -Xms26g Xmx26g -XX:MaxGCPauseMillis=500 -XX:+PrintGCTimeStamp

倧芏暡ペヌゞ

ヒュヌゞ・ペヌゞずも呌ばれるラヌゞ・ペヌゞは、暙準のメモリヌ・ペヌゞ・サむズ(プロセッサおよびオペレヌティング・システムによっお異なりたす)よりはるかに倧きいメモリヌ・ペヌゞです。 ラヌゞ・ペヌゞは、プロセッサのTranslation-Lookaside Bufferを最適化したす。

Translation-Lookaside Buffer (TLB)は、最近䜿甚された仮想から物理ぞのアドレス倉換を保持するペヌゞ倉換キャッシュです。 TLBは、少ないシステム・リ゜ヌスです。 プロセッサが耇数のメモリヌ・アクセスが必芁な堎合のある階局ペヌゞ衚から読み取る必芁があるため、TLBミスは負荷がかかる可胜性がありたす。 倧きいメモリヌ・ペヌゞ・サむズを䜿甚しお、単䞀のTLB゚ントリで倧きいメモリヌ範囲を衚すこずができたす。 TLB䞍足が少なくなり、メモリヌ集玄型のアプリケヌションのパフォヌマンスが向䞊する可胜性がありたす。

ただし、ラヌゞ・ペヌゞのペヌゞ・メモリヌは、システムのパフォヌマンスに悪圱響を䞎える堎合がありたす。 たずえば、倧量のメモリヌがアプリケヌションで確保される堎合、通垞メモリヌ䞍足や他のアプリケヌションの過剰なペヌゞングが発生し、システム党䜓が遅くなる可胜性がありたす。 たた、長時間皌働しおいるシステムは、過剰な断片化が発生する可胜性がありたす。これにより、十分な倧きさのペヌゞ・メモリヌを予玄できない可胜性がありたす。 これが発生した堎合、OSたたはJVMのいずれかが通垞のペヌゞの䜿甚に戻りたす。

ラヌゞ・ペヌゞのサポヌト

Windows Server 2003のみ、ラヌゞ・ペヌゞをサポヌトしたす。 この機胜を䜿甚するため、管理者は最初に远加の暩限をアプリケヌションを実行するナヌザヌに割り圓おる必芁がありたす。

  1. 「コントロヌル・パネル」」→「管理ツヌル」→「ロヌカル・セキュリティ・ポリシヌ」を遞択したす。

  2. 「ロヌカル・ポリシヌ」→「ナヌザヌ暩利の割圓お」を遞択したす。

  3. 「Lock Pages in Memory」をダブルクリックしお、ナヌザヌたたはグルヌプあるいはその䞡方を远加したす。

  4. システムを再起動したす。

デフォルトで管理者はメモリヌのペヌゞをロックする暩限がないため、アプリケヌションを実行する管理者でもこれらのステップが必芁なので泚意しおください。

アプリケヌション・クラス・デヌタ共有

アプリケヌション・クラス・デヌタ共有(AppCDS)は、CDS(https://docs.oracle.com/javase/8/docs/technotes/guides/vm/class-data-sharing.htmlを参照)を拡匵しお暙準拡匵ディレクトリのクラスを有効化し(システム・プロパティjava.ext.dirsで指定。https://docs.oracle.com/javase/8/docs/technotes/guides/extensions/spec.htmlを参照)、アプリケヌション・クラス・パスを共有アヌカむブに配眮できるようにしたす(「クラス・パスの蚭定」を参照)。 AppCDSは、盞圓数のクラスがアプリケヌション・クラス・パスからロヌドされるずいう条件䞋で、フットプリントを䜎枛し、アプリケヌション起動時間を短瞮したす。

これは、-XX:+UnlockCommercialFeaturesオプションを同時に指定する必芁がある商甚機胜です。 これは実隓的な機胜でもあり、今埌のリリヌスで倉曎される堎合がありたす。

共有アヌカむブ・ファむルの䜜成ず、それを䜿甚したアプリケヌションの実行

次のステップで、test.Helloアプリケヌションで䜿甚されるすべおのクラスを含む共有アヌカむブ・ファむルを䜜成したす。 最埌のステップで、共有アヌカむブ・ファむルを持぀アプリケヌションを実行したす。

  1. test.Helloアプリケヌションで䜿甚されるすべおのクラスのリストを䜜成したす。 次のコマンドは、このアプリケヌションで䜿甚されるすべおのクラスのリストを含む、hello.classlistずいう名前のファむルを䜜成したす。

    java -Xshare:off -XX:+UnlockCommercialFeatures -XX:DumpLoadedClassList=hello.classlist -XX:+UseAppCDS -cp hello.jar test.Hello

    -cpパラメヌタがJARファむルのみを含む必芁がある点に泚意しおください。-XX:+UseAppCDSオプションは、ディレクトリ名を含むクラス・パスをサポヌトしたせん。

  2. hello.classlist内のすべおのクラスを含む、hello.jsaずいう名前の共有アヌカむブを䜜成したす。

    java -XX:+UnlockCommercialFeatures -Xshare:dump -XX:+UseAppCDS -XX:SharedArchiveFile=hello.jsa -XX:SharedClassListFile=hello.classlist -cp hello.jar

    アヌカむブ䜜成時に䜿甚された-cpパラメヌタは、実行時に䜿甚された-cpず同䞀(たたは、その接頭蟞)である必芁があるこずに泚意しおください。

  3. 共有アヌカむブhello.jsaを持぀アプリケヌションtest.Helloを実行したす。

    java -XX:+UnlockCommercialFeatures -Xshare:on -XX:+UseAppCDS -XX:SharedArchiveFile=hello.jsa -cp hello.jar test.Hello

    オプション-Xshare:onたたは-Xshare:autoを指定したこずを確認したす。

  4. test.Helloアプリケヌションが、hello.jsa共有アヌカむブに含たれるクラスを䜿甚しおいるこずを確認したす。

    java -XX:+UnlockCommercialFeatures -Xshare:on -XX:+UseAppCDS -XX:SharedArchiveFile=hello.jsa -cp hello.jar -verbose:class test.Hello

    このコマンドの出力は、次のテキストを含んでいる必芁がありたす。

    Loaded test.Hello from shared objects file by sun/misc/Launcher$AppClassLoader

耇数アプリケヌション・プロセス党䜓での共有アヌカむブの共有

正確に同じクラス・パスを持っおいるか、共通のクラス・パス接頭蟞を共有する、耇数のアプリケヌション・プロセス党䜓で、同じアヌカむブ・ファむルを共有できたす。 アヌカむブはプロセスのアドレス空間にメモリヌ・マップされるため、これによりメモリヌ䜿甚量が䜎䞋したす。 オペレヌティング・システムは、これらのプロセス党䜓で読取り専甚ペヌゞを自動的に共有したす。

次のステップでは、アプリケヌションHelloおよびHiが䜿甚できる共有アヌカむブを䜜成したす。

  1. Helloアプリケヌションで䜿甚されるすべおのクラスのリストず、Hiアプリケヌションに関する別のリストを䜜成したす。

    java -XX:+UnlockCommercialFeatures -XX:DumpLoadedClassList=hello.classlist -XX:+UseAppCDS -cp common.jar:hello.jar Hello

    java -XX:+UnlockCommercialFeatures -XX:DumpLoadedClassList=hi.classlist -XX:+UseAppCDS -cp common.jar:hi.jar Hi

    HelloおよびHiアプリケヌションは、共通のクラス・パス接頭蟞を共有しおいるため(クラス・パスはどちらもcommon.jarで始たりたす)、これらの2぀のアプリケヌションは1぀の共有アヌカむブ・ファむルを共有できたす。

  2. 共有アヌカむブ・ファむルを共有するすべおのアプリケヌションで䜿甚されるクラスの単䞀のリストを䜜成したす。

    次のコマンドは、ファむルhello.classlistおよびhi.classlistを、1぀のファむルcommon.classlistに結合したす。

    type hello.classlist hi.classlist > common.classlist

  3. common.classlist内のすべおのクラスを含む、common.jsaずいう名前の共有アヌカむブを䜜成したす。

    java -XX:+UnlockCommercialFeatures -Xshare:dump -XX:SharedArchiveFile=common.jsa -XX:+UseAppCDS -XX:SharedClassListFile=common.classlist -cp common.jar

    -cpパラメヌタの倀は、HelloおよびHiアプリケヌションで共有される共通のクラス・パス接頭蟞です。

  4. 同䞀の共有アヌカむブを持぀HelloおよびHiアプリケヌションを実行したす。

    java -XX:+UnlockCommercialFeatures -Xshare:on -XX:SharedArchiveFile=common.jsa -XX:+UseAppCDS -cp common.jar:hello.jar Hello

    java -XX:+UnlockCommercialFeatures -Xshare:on -XX:SharedArchiveFile=common.jsa -XX:+UseAppCDS -cp common.jar:hi.jar Hi

終了ステヌタス

䞀般にランチャから次の終了倀が返されるのは、通垞、ランチャが䞍正な匕数、深刻な゚ラヌ、たたはJVMによっおスロヌされた䟋倖によっお呌び出された堎合です。 ただし、JavaアプリケヌションはAPI呌出しSystem.exit(exitValue)を䜿甚しお任意の倀を返すこずができたす。 倀:

  • 0: 正垞終了

  • >0: ゚ラヌ発生

関連項目

目次   å‰   æ¬¡

Copyright © 1993, 2025, Oracle and/or its affiliates. All rights reserved.