Print All JVM Flags

Found an interesting JVM Flag :

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

It prints hundreds of various options, I never heard about before. It also prints default values, that helps diagnose JVM behaviors better. Another interesting flag is:

-XX:+UnlockExperimentalVMOptions

Does anyone knows of any documentation which explains each one of them ?

76794 次浏览

我找到的最好的文档是 源头

I've used this SO Q&A to create a debug build. With this debug build, you can run java -XX:+AggressiveOpts -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions -XX:+PrintFlagsFinal -XX:+PrintFlagsWithComments -version.

从包含源代码的目录中,您可以执行(假设您正在使用 Linux、 Cygwin 或类似的操作系统) :

grep -FR 'UnlockExperimentalVMOptions' hotspot/

或者,以下内容(只查看 *.cpp*.hpp文件) :

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

然后查看源文件。没有一个文档描述所有选项的最佳原因可能是,其中一些选项最好留给那些真正了解 JVM 的人,最好的方法是熟悉源代码。

因此,在字(几乎)的一个伟大的 masteruse the source

不要错过也为 Graal JIT 选项的 -XX:+JVMCIPrintProperties

在深入研究资源之前,你可以快速浏览以下摘录,更快地找到合适的选项:

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