打印所有JVM标志

find一个有趣的JVM标志:

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

它打印数以百计的各种选项,我从来没有听说过。 它还打印默认值,这有助于更好地诊断JVM行为。 另一个有趣的标志是:

 -XX:+UnlockExperimentalVMOptions 

有没有人知道解释每一个他们的任何文件?

我发现的最好的文档是来源 。

我用这个问答来创build一个debugging版本。 通过此debugging版本,您可以运行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的人,最好的办法就是熟悉源代码。

所以,在一个伟大的主人 (几乎)的话, use the source