找到一个有趣的JVM标志:
java -XX:+UnlockDiagnosticVMOptions -XX:+PrintFlagsFinal -version
Run Code Online (Sandbox Code Playgroud)
它打印了数百种不同的选项,我以前从未听说过.它还会打印默认值,这有助于更好地诊断JVM行为.另一个有趣的标志是:
-XX:+UnlockExperimentalVMOptions
Run Code Online (Sandbox Code Playgroud)
有谁知道任何解释其中每一个的文件?
JEP 192:在Java 8 Update 20中实现的 G1中的字符串重复数据删除添加了新的字符串重复数据删除功能:
通过增强G1垃圾收集器来减少Java堆实时数据集,以便自动且连续地对重复的String实例进行重复数据删除.
JEP页面提到命令行选项UseStringDeduplication (bool)允许启用或禁用重复数据删除功能.但是JEP页面并没有指出默认值.
➠与Java 8和Java 9捆绑在一起的G1垃圾收集器中,重复数据删除功能是否默认为ON或OFF?
➠是否有"getter"方法在运行时验证当前设置?
我不知道在JEP页面之外查找文档的位置.
至少在热点 -equipped的Java 9的实施中,G1垃圾收集器是默认启用.这个事实现在促成了这个问题.有关String interning和重复数据删除的更多信息,请参阅Aleksey Shipilev在29:00的2014-10演示文稿.