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?
Antworten:
Verpassen Sie nicht auch
-XX:+JVMCIPrintProperties
fü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
quelle
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):
Oder das Folgende (das nur betrachtet
*.cpp
und*.hpp
Dateien):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
!quelle
read the source
.