Trouvé un drapeau 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 facilite le diagnostic des comportements de la JVM. Un autre drapeau intéressant est:
-XX:+UnlockExperimentalVMOptions
Est-ce que quelqu'un connaît une documentation qui explique chacune d'elles?
Avant de plonger dans les sources, vous pouvez survoler 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 meilleure documentation que j'ai trouvée est la source .
J'ai utilisé this SO Q & R 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
.
À partir du répertoire contenant les sources, vous pouvez exécuter (en supposant que vous utilisez Linux, Cygwin ou similaire):
grep -FR 'UnlockExperimentalVMOptions' hotspot/
Ou, le suivant (qui ne regarde que *.cpp
et *.hpp
des dossiers):
find hotspot/ -name '*.[ch]pp' -exec grep -F 'UnlockExperimentalVMOptions' {} +
Ensuite, regardez les fichiers source. La meilleure raison pour laquelle aucun document ne décrit toutes les options est probablement que certaines d'entre elles sont mieux laissées à ceux qui comprennent vraiment la machine virtuelle et que la meilleure façon de le faire est de se familiariser intimement avec le code source.
Ainsi, dans les mots (presque) d'un grand maître , use the source
!