找到了一个有趣的JVM Flag:
java -XX:+UnlockDiagnosticVMOptions -XX:+PrintFlagsFinal -version
它可以打印数百种各种选项,我以前从未听说过。它还会打印默认值,以帮助更好地诊断JVM行为。另一个有趣的标志是:
-XX:+UnlockExperimentalVMOptions
有谁知道解释其中每一个的任何文档?
找到了一个有趣的JVM Flag:
java -XX:+UnlockDiagnosticVMOptions -XX:+PrintFlagsFinal -version
它可以打印数百种各种选项,我以前从未听说过。它还会打印默认值,以帮助更好地诊断JVM行为。另一个有趣的标志是:
-XX:+UnlockExperimentalVMOptions
有谁知道解释其中每一个的任何文档?
Answers:
也不要错过-XX:+JVMCIPrintProperties
Graal JIT选项。
在深入研究资源之前,您可以浏览以下摘录并更快地找到合适的选项:
https://chriswhocodes.com/ 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&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
!
read the source
。