Alle JVM-Flags drucken

96

Eine interessante JVM-Flagge gefunden:

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

Es werden Hunderte verschiedener Optionen gedruckt, von denen ich noch nie gehört habe. Außerdem werden Standardwerte gedruckt, mit denen das Verhalten von JVM besser diagnostiziert werden kann. Eine weitere interessante Flagge ist:

-XX:+UnlockExperimentalVMOptions

Kennt jemand eine Dokumentation, die jeden einzelnen erklärt?

Sachin Bhansali
quelle
Der Grund, warum die Befehlszeile nicht in der Dokumentation aufgeführt ist, liegt darin, dass sie, wie der Name schon sagt, zur Diagnose der VM dient. Es kann angenommen werden, dass die Leute, die Hotspot debuggen, sie wahrscheinlich kennen;)
Voo
1
Dieser Link erklärt diese Optionen kurz und ziemlich gut.
Sactiw

Antworten:

35

Verpassen Sie nicht auch -XX:+JVMCIPrintPropertiesfür Graal JIT-Optionen.

Bevor Sie in Quellen eintauchen, können Sie die folgenden Auszüge überfliegen und schneller eine geeignete Option finden:

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

Andriy Plokhotnyuk
quelle
15

Die beste Dokumentation, die ich gefunden habe, ist die Quelle .

Ich habe diese SO Q & A verwendet , um einen Debug-Build zu erstellen. Mit diesem Debug-Build können Sie ausführen java -XX:+AggressiveOpts -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions -XX:+PrintFlagsFinal -XX:+PrintFlagsWithComments -version.

Aus dem Verzeichnis mit den Quellen können Sie Folgendes ausführen (vorausgesetzt, Sie verwenden Linux, Cygwin oder dergleichen):

grep -FR 'UnlockExperimentalVMOptions' hotspot/

Oder das Folgende (das nur betrachtet *.cppund *.hppDateien):

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

Dann schauen Sie sich die Quelldateien an. Der wahrscheinlich beste Grund, warum es kein einziges Dokument gibt, das alle Optionen beschreibt, ist, dass einige dieser Optionen besser denen überlassen werden, die die JVM wirklich verstehen. Der beste Weg, dies zu tun, besteht darin, sich mit dem Quellcode vertraut zu machen.

Also, in den Worten (fast) von einem großen Meister , use the source!

Dan Cruz
quelle
1
Die Quelle ist per Definition eine perfekte Dokumentation des Programms. Siehe auch Kodierunghorror.com/blog/2012/04/…
Pyrolistical
@Pyrolistical Danke für den Link; Gute Lektüre und ich wusste nicht, dass Jeff Atwood kürzlich darüber gebloggt hat read the source.
Dan Cruz