108

发现了一个有趣的 JVM 标志:

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

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

-XX:+UnlockExperimentalVMOptions

有谁知道任何解释它们的文档?

4

2 回答 2

40

不要错过-XX:+JVMCIPrintPropertiesGraal JIT 选项。

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

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

于 2012-05-07T19:14:58.370 回答
15

我找到的最好的文档是source

我已经使用这个 SO Q&A来创建调试版本。使用此调试版本,您可以运行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

于 2012-05-07T18:14:03.587 回答