我想知道 JDK 7 版本中“垃圾优先”(G1)收集器的官方状态是什么。我想使用 G1 作为 CMS 的低暂停 gc 替代品,但前提是我可以真正相信它的稳健性。
在 JDK 7 出来之前,G1 被宣传为闪亮的新 gc 将取代 CMS 收集器,甚至成为 JDK 7 中的默认 gc。但是,现在使用 Oracle JDK 7u1,G1 不是我拥有的任何机器上的默认 gc试过了。
尽管在 JDK 7 中-XX:+UnlockExperimentalVMOptions
使用时不再需要指定-XX:+UseG1GC
,但它是一项 JVM 功能,官方完全没有记录:
我能找到的唯一一个提到 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 的真实状态和未来是什么。真的稳定了吗?剩下的问题(如泄漏、虚假崩溃和缺少仪器支持)是否已解决?如果是这样,为什么甲骨文将 G1GC 视为无证(尴尬?)秘密?G1 可能是一个失败的项目,现在默默地停止了吗?还是我需要为文件和支持付费?还是只是测试版?有人可以告诉我这里发生了什么吗?