JDK 11将引入ZGC,大幅缩短GC暂停时长
极客时间编辑部
讲述:杜力大小:1001.91K时长:02:08
JDK 11 将在今年发布,近日,他们宣布,JEP 333 中将会加入实验性质的 ZGC(Scalable Low-Latency Garbage Collector ),ZGC 是能够大幅减少 GC(垃圾回收机制)暂停时间的可伸缩低延迟垃圾回收器 。
一直以来,GC 都是 Java 的主要优势之一,但是,当垃圾回收暂停时间过长时,会对应用程序的响应时间产生负面影响。而现代系统中可用的内存量一直在不断增长,用户和应用开发人员希望,JVM 能够以高效的方式充分利用这个内存,并且不要有过长的 GC 暂停时间。
此次新增的 ZGC 功能,能够消除或大幅缩短 GC 暂停的时间。据了解,ZGC 有着以下几个目标:
GC 暂停时间不应超过 10 毫秒;
处理堆的大小范围从相对较小(几百 M)到非常大(几 T)不等;
与使用 G1 相比,应用程序吞吐量减少不超过 15%;
为未来的 GC 功能和优化利用有色指针(colored pointers)以及加载屏障(load barriers)奠定基础;
初始支持平台:Linux 或 x64。
据悉,ZGC 是一个并发的、单代的、基于区域的、NUMA 感知的压缩收集器,Stop-the-world 阶段仅限于根扫描,因此 GC 暂停时间不会随堆或活动集(live set)的变大而增加。
ZGC 的核心设计原则,是将加载屏障与有色对象指针(colored oops)结合使用,这使得 ZGC 能够在 Java 应用程序线程运行时执行并发操作,例如(停顿)对象重(chong)定向。
从 Java 线程的角度来看,在 Java 对象中加载引用字段的行为会受到加载屏障的影响。除了对象地址之外,有色对象指针中还包含加载屏障使用的信息,以确定在允许 Java 线程使用指针之前是否需要采取某些操作。例如,对象有可能已经被重定向,那么加载屏障将对此进行检测并采取适当的操作。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
请先领取课程
免费领取
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
精选留言
由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论