关切微信  |  微博  |  腾讯微博  |  RSS订阅
读者QQ群③:168129342,姚记娱乐城大家乐请发姚记娱乐城大家乐
我要姚记娱乐城大家乐

bet36备用网址报道Oracle计划将ZGC项目提交给OpenJDK_bet36备用网址官网资讯

bet36备用网址

作者:张卫滨

依据OpenJDK的邮件列表,来自Oracle的Per Liden提议将内部开拓的Z渣滓收集器开源,并在OpenJDK创建ZGC项目。

按照OpenJDK的指导原则,该项目将会托管不断开拓完善的Z渣滓收集器,也被称为ZGC。ZGC项目针对低延迟和大规模堆的环境进行了优化。在Oracle内部,ZGC一直处于开拓状态,现在提议将其开源是为了扩大贡献者和用户之间的共识。按照Per Liden的说法,ZGC的设计目的:

  • 处置TB量级的堆;
  • GC时间不超越10ms;
  • 相对于使用G1,应用吞吐量的降低不超越15%。

在一些著名的业界标准基准测验中,ZGC已经到达或超越该目的了。ZGC是一个并发、基于区域(region)、增量式压缩的收集器。Stop-The-World阶段只会在根对象扫描(root scanning)阶段发生,这样的话GC暂停时间并不会随着堆和存活对象的数量而增加。

当前,ZGC已经较为成熟和稳定,但是,还有一些工作要做。ZGC在以下GC任务/阶段中会并发执行:

  • 标志(Marking)
  • 引用处置(Reference processing)
  • 重新分配集的选择(Relocation set selection)
  • 重分配/压缩(Relocation/Compaction)

现在,团队的主要工作是将其余的GC任务/阶段也变成并发执行,具体来讲就是弱根对象处置(Weak root processing,包括StringTable和JNIWeakGlobalRefs)、类卸载(Class unloading)。

ZGC的核心原则就是组合使用加载屏障(load barrier)与有色对象指针(colored object pointers,colored oops)。正是采纳了这两项技术,ZGC才能做到一些操作的并发执行,比如在Java应用运行的时刻,进行对象地位的重新分配。从Java线程的角度来讲,加载Java对象中的引用域会受到加载屏障影响。除了对象地址以外,有色对象指针还会包含加载屏障所需的其余信息,用来决议Java线程在使用指针之前是否要采纳一些额外的措施。例如,如果对象有可能会被重新分配地址的话,加载屏障会探测到这种情况并采纳相应的措施。

Per Liden认为,这种方式相对其余可选方案有一些优势,比如能够降低堆内存的损耗、减少和简化GC屏障以降低运行时的损耗,而且有色对象指针除了包含标志和重分配信息之外,还能够存储任何类型的信息,这样加载屏障就能基于这些信息采纳相应的措施。

该项目初始代码会基于JDK 10的仓库以及最新的ZGC补丁集构建。JDK 10父仓库的变化将会阶段性同步到ZGC中。

据专业人士的观察认为,该项目可能会与Red Hat的Shenandoah渣滓收集项目发生竞争,因为后者也是以大容量堆的应用为关切对象。

End.

转载请注明来自36bet36备用网址(36dsj.com):36bet36备用网址 » Oracle计划将ZGC项目提交给OpenJDK

36bet36备用网址   除非特别注明,本站一切文章均不代替本站观点。报道中出现的商标属于其合法持有人。请遵守理性,宽容,换位思索的原则。

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
条评论
Sitemap