2012-05-07 9 views
67

Gefunden eine interessante JVM Flag:Drucken Alle JVM Flags

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

Er druckt Hunderte von verschiedenen Optionen, ich habe nie über zuvor gehört. Es werden auch Standardwerte gedruckt, mit denen das JVM-Verhalten besser diagnostiziert werden kann. Eine weitere interessante Flagge ist:

-XX:+UnlockExperimentalVMOptions 

Hat jemand weiß jeder Dokumentation, die jeder von ihnen erklärt?

+5

http://www.oracle.com/technetwork/ java/javase/tech/vmoptions-jsp-140102.html – user1329572

+0

Der Grund, dass die Befehlszeile nicht in der Dokumentation aufgeführt ist, ist, weil der Name sagt, dass es da ist, um die VM zu diagnostizieren. Es kann davon ausgegangen werden, dass die Leute den Debugging-Hotspot wahrscheinlich kennen ;-) – Voo

+0

dies [link] (http://www.javaworld.com/article/2073676/hotspot-jvm-options-displayed---xx--printflagsinitial-and --xx - printflagsfinal.html) erklärt diese Optionen kurz und ziemlich gut. – sactiw

Antwort

11

Die beste Dokumentation, die ich gefunden habe, ist the source.

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

aus dem Verzeichnis mit den Quellen, könnten Sie ausführen (vorausgesetzt, Sie Linux, Cygwin oder ähnliches verwenden):

grep -FR 'UnlockExperimentalVMOptions' hotspot/ 

Oder die folgenden (das sieht nur auf *.cpp und *.hpp Dateien):

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

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

Also, in den Worten (fast) einer großen master, use the source!

+0

Die Quelle ist per Definition eine perfekte Dokumentation des Programms. Siehe auch http://www.codinghorror.com/blog/2012/04/learn-to-read-the-source-luke.html – Pyrolistical

+0

@Pyrolistical Danke für den Link; Gute Lektüre und ich wusste nicht, dass Jeff Atwood kürzlich über 'die Quelle lesen' gebloggt hat. –