J'ai trouvé un indicateur JVM intéressant:
java -XX:+UnlockDiagnosticVMOptions -XX:+PrintFlagsFinal -version
Il imprime des centaines d'options différentes, dont je n'avais jamais entendu parler auparavant. Il imprime également les valeurs par défaut, ce qui permet de mieux diagnostiquer les comportements JVM. Un autre drapeau intéressant est:
-XX:+UnlockExperimentalVMOptions
Quelqu'un a-t-il connaissance d'une documentation expliquant chacun d'eux?
Réponses:
Ne manquez pas non plus les
-XX:+JVMCIPrintProperties
options Graal JIT.Avant de plonger dans les sources, vous pouvez parcourir les extraits suivants et trouver plus rapidement l'option appropriée:
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
la source
La meilleure documentation que j'ai trouvée est la source .
J'ai utilisé ce SO Q&A pour créer une version de débogage. Avec cette version de débogage, vous pouvez exécuter
java -XX:+AggressiveOpts -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions -XX:+PrintFlagsFinal -XX:+PrintFlagsWithComments -version
.Depuis le répertoire avec les sources, vous pouvez exécuter (en supposant que vous utilisez Linux, Cygwin ou autre):
Ou, ce qui suit (qui ne regarde
*.cpp
que les*.hpp
fichiers et ):Regardez ensuite les fichiers source. La meilleure raison pour laquelle il n'y a probablement pas de document décrivant toutes les options est que certaines de ces options sont mieux laissées à ceux qui comprennent vraiment la JVM et la meilleure façon de le faire est de se familiariser intimement avec le code source.
Ainsi, les mots (presque) d'un grand maître ,
use the source
!la source
read the source
.