发现了一个有趣的JVM标志:
java -XX:+UnlockDiagnosticVMOptions -XX:+PrintFlagsFinal -version
它打印了数百种不同的选项,我以前从未听说过。它还打印默认值,这有助于更好地诊断JVM行为。另一个有趣的标志是:
-XX:+UnlockExperimentalVMOptions
有人知道任何解释他们每一个人的文件吗?
不要错过 -XX: JVMCIPrintProperties
for Graal 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
我找到的最好的文档是源代码。
我用过这个SO Q。
从包含源代码的目录中,您可以执行(假设您使用的是 Linux、Cygwin等):
grep -FR 'UnlockExperimentalVMOptions' hotspot/
或者,以下(仅查看*. cpp
和*.hpp
文件):
find hotspot/ -name '*.[ch]pp' -exec grep -F 'UnlockExperimentalVMOptions' {} +
然后查看源文件。没有一个文档描述所有选项的最佳原因可能是,其中一些选项最好留给那些真正了解JVM的人,而最好的方法是熟悉源代码。
所以,用(几乎)一位大师的话来说,< code >用源码!