すべてのJVMフラグを出力


96

興味深いJVMフラグが見つかりました:

java -XX:+UnlockDiagnosticVMOptions -XX:+PrintFlagsFinal -version

それは何百ものさまざまなオプションを印刷します。また、JVMの動作の診断に役立つデフォルト値も出力します。別の興味深いフラグは次のとおりです。

-XX:+UnlockExperimentalVMOptions

誰かがそれらのそれぞれを説明するドキュメントを知っていますか?



コマンドラインがドキュメントに記載されていない理由は、名前が示すように、VMを診断するために存在するためです。ホットスポットをデバッグしている人々はおそらくそれらを知っていると考えられます;)
Voo

1
このリンクは、これらのオプションについて簡潔に説明しています。
sactiw 2016年

回答:


35

-XX:+JVMCIPrintPropertiesGraal JITオプションもお見逃しなく。

ソースに飛び込む前に、以下の抜粋をざっと見て、適切なオプションをより早く見つけることができます。

https://chriswhocodes.com/(OracleJDK 6 /7/8/9/10/11/12、OpenJDK 8/9/10/11、Graal CE / EE、OpenJ9、Zing)

http://jvm-options.tech.xebia.fr/

http://www.pingtimeout.fr/2012/05/jvm-options-complete-reference.html

http://stas-blogspot.blogspot.com/2011/07/most-complete-list-of-xx-options-for.html


15

私が見つけた最高のドキュメントはソースです。

私が使用してきました。このSO Q&Aをデバッグビルドを作成します。このデバッグビルドでは、を実行できますjava -XX:+AggressiveOpts -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions -XX:+PrintFlagsFinal -XX:+PrintFlagsWithComments -version

ソースのあるディレクトリから、次のコマンドを実行できます(Linux、Cygwinなどを使用していると想定)。

grep -FR 'UnlockExperimentalVMOptions' hotspot/

または、以下(ファイル*.cpp*.hppファイルのみを表示):

find hotspot/ -name '*.[ch]pp' -exec grep -F 'UnlockExperimentalVMOptions' {} +

次に、ソースファイルを確認します。おそらく、すべてのオプションを説明するドキュメントが1つもない最も良い理由は、これらのオプションの一部は、JVMを本当に理解している人に任せた方がよく、そのための最善の方法は、ソースコードに精通することです。

だから、偉大なマスターの(ほぼ)言葉で、use the source


1
ソースは、プログラムの完全なドキュメントです。また、codinghorror.com
blog

@Pyrolisticalリンクありがとうございます。よく読んで、最近ジェフ・アトウッドがブログに書いたことを知りませんでしたread the source
Dan Cruz
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.