打印所有JVM标志

Sac*_*ali 88 java printing optimization flags jvm

找到一个有趣的JVM标志:

java -XX:+UnlockDiagnosticVMOptions -XX:+PrintFlagsFinal -version
Run Code Online (Sandbox Code Playgroud)

它打印了数百种不同的选项,我以前从未听说过.它还会打印默认值,这有助于更好地诊断JVM行为.另一个有趣的标志是:

-XX:+UnlockExperimentalVMOptions
Run Code Online (Sandbox Code Playgroud)

有谁知道任何解释其中每一个的文件?

And*_*yuk 31

在深入了解资源之前,您可以浏览以下摘录并更快地找到合适的选项:

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


Dan*_*ruz 12

我发现的最好的文档是源代码.

我已经使用这个SO Q&A来创建调试版本.使用此调试版本,您可以运行java -XX:+AggressiveOpts -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions -XX:+PrintFlagsFinal -XX:+PrintFlagsWithComments -version.

从包含源的目录中,您可以执行(假设您使用的是Linux,Cygwin等):

grep -FR 'UnlockExperimentalVMOptions' hotspot/
Run Code Online (Sandbox Code Playgroud)

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

find hotspot/ -name '*.[ch]pp' -exec grep -F 'UnlockExperimentalVMOptions' {} +
Run Code Online (Sandbox Code Playgroud)

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

因此,在一个伟大的话(几乎)高手,use the source!