Print All JVM Flags

孤街醉人 提交于 2019-11-26 04:30:55

问题


Found an interesting JVM Flag :

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

It prints hundreds of various options, I never heard about before. It also prints default values, that helps diagnose JVM behaviors better. Another interesting flag is:

-XX:+UnlockExperimentalVMOptions

Does anyone knows of any documentation which explains each one of them ?


回答1:


Before dive into sources you can skim over following extracts and find suitable option faster:

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




回答2:


The best documentation I've found is the source.

I've used this SO Q&A to create a debug build. With this debug build, you can run java -XX:+AggressiveOpts -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions -XX:+PrintFlagsFinal -XX:+PrintFlagsWithComments -version.

From the directory with the sources, you could execute (assuming you are using Linux, Cygwin or the like):

grep -FR 'UnlockExperimentalVMOptions' hotspot/

Or, the following (which only looks at *.cpp and *.hpp files):

find hotspot/ -name '*.[ch]pp' -exec grep -F 'UnlockExperimentalVMOptions' {} +

Then look at the source files. Probably the best reason why there is no one document that describes all options is that some of these options are better left to those who really understand the JVM and the best way to do that is to become intimately familiar with the source code.

So, in the words (almost) of a great master, use the source!



来源:https://stackoverflow.com/questions/10486375/print-all-jvm-flags

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!