打印所有JVM标志


97

找到了一个有趣的JVM Flag:

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

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

-XX:+UnlockExperimentalVMOptions

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



该文档未列出命令行的原因是,因为顾名思义,该命令行用于诊断VM。可以假设调试热点的人可能认识他们;)
Voo,2012年

1
链接简要扼要地解释了这些选项。
sactiw

Answers:



15

我找到的最好的文档就是参考资料

我已使用此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


1
根据定义,源是程序的完美文档。另请参见codinghorror.com/blog/2012/04/…– Pyrolistical
2012年

@Pyrolistical感谢您的链接;很好的阅读,我不知道Jeff Atwood最近在博客上发表文章read the source
丹·克鲁兹
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.