我想知道JDK 7版本中"垃圾优先"(G1)收集器的官方状态如何。我希望可以使用G1作为低暂停的GC替代CMS,但前提是我真正相信它的健壮性。
JDK 7发布之前,G1被宣传为一个闪亮的新GC,将取代CMS收集器并成为JDK 7的默认GC。然而,现在随着Oracle JDK 7u1的发布,G1不是任何我尝试过的机器上的默认GC。
即使在JDK 7中使用-XX:+UseG1GC
时不再需要指定-XX:+UnlockExperimentalVMOptions
,但这仍是一个正式完全未记录的JVM功能:
Java 7 (JDK 7) garbage collection and documentation on G1
我能找到唯一提到G1的官方文档已经严重过时,早在JDK 7发布之前就编写了:
http://www.oracle.com/technetwork/java/javase/tech/g1-intro-jsp-135488.html
例如,官方的“Java HotSpot VM Options”文档(http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html)记录了如何启用和调整其他收集器,但甚至没有提到G1的存在。就好像它不存在一样!
这很令人困惑,我想知道G1的实际状态和未来发展如何。它真的稳定了吗?剩下的问题(如泄漏、虚假崩溃和缺失的仪器支持)是否得到了解决?如果是这样,为什么Oracle将G1GC视为未经记录的(尴尬的?)秘密?G1可能是一个已失败但被静默停止的项目吗?或者我需要支付文档和支持费用吗?还是它只是测试版?有谁能告诉我这里发生了什么?