Oracle 计划将 ZGC 项目提交给 OpenJDK

前不久 OpenJDK 的邮件列表显示,Oracle 的 Per Liden 提议将 Z 垃圾收集器开源,并在 OpenJDK 创建 ZGC 项目。

根据 OpenJDK 的指南,该项目将托管 Z 垃圾收集器,然后不断开发完善,并将其称为 ZGC。ZGC是一个并发的、以区域(region)为基础的、增量式压缩的收集器。Stop-The-World 阶段仅限于根对象扫描(root scanning)阶段发生,这意味着 GC 暂停时间不会随着堆或活动集的大小而增加。

ZGC 的设计目标如下:

  • 处理 TB 量级的堆;

  • GC 时间不超过 10ms;

  • 相对于使用 G1,应用吞吐量的降低不超过 15%

相关工作人员表示完全有信心实现上述目标。并且,在一些著名的业界标准基准测试中,ZGC 已经达到或超过该目标了。

目前,ZGC 已经趋于稳定,但仍有许多工作要做。ZGC 或并发执行以下 GC 任务/阶段:

  • 标记(Marking)

  • 引用处理(Reference processing)

  • 重新分配集的选择(Relocation set selection)

  • 重分配/压缩(Relocation/Compaction)

现在,团队的主要任务就是将其他的 GC 任务/阶段也变成并发执行。

该项目的初始源码将基于 JDK 10 库,并基于 ZGC 补丁集构建。JDK 10 父仓库的变动将会同步到 ZGC 中。

关于该计划的详细内容,请查看英语原文

See original: 

Oracle 计划将 ZGC 项目提交给 OpenJDK