web-dev-qa-db-fra.com

Imprimer tous les drapeaux JVM

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?

85
Sachin Bhansali

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

30

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!

12
Dan Cruz