美文网首页java
自己瞎叨叨两句ZGC

自己瞎叨叨两句ZGC

作者: 扎瓦叔叔 | 来源:发表于2019-10-17 18:32 被阅读0次

啥是zgc?

一种可扩展的低延迟垃圾收集器

它的目标:

  • 大堆收集
  • 最大延迟时间不超过10ms
  • gc停顿不会受到堆大小的影响
  • 为未来的gc功能奠定基础

特点:

新的垃圾回收器
负载屏障
有色指针
不分代
部分压缩
基于region划分
内存即时重用
NUMA支持

并发处理

标记
复制和压缩
重定位集的选择
引用的处理
JNI WeakRefs的清理
StringTable / SymbolTable清洁
类卸载

测试数据

停顿时间.png 吞吐量.png

gc流程

  1. 停顿【标记开始】
    • 对指向gcroots的对象进行标记
    • 并发标记/remap,根据对象关系标记对象
  2. 停顿【标记结束】
    • 同步点(弱引用清理)
    • 并发准备重定位,引用处理,弱引用清理,重定位集选择
  3. 停顿【重定位开始】
    • 将引用roots的对象写入重定位集
    • 并发重定位,在重定位集中


      gc cycle.png

Heap Regions

  • 动态创建/销毁
  • 动态创建大小为2MB的倍数(x86_64)
  • 大小选择
    • Small(2MB)
    • Medium(32MB)
    • Large(N*2MB)

有色指针

  • 有色指针是zgc的核心设计理念
  • 元数据:存储在64位指针的未使用位中
    • 不支持32位平台
    • 不支持压缩操作
  • 虚拟地址掩码:硬件,操作系统,软件都支持
    • 在Linux / x86_64上进行堆多映射
    • 支持Solaris / SPARC的硬件
有色指针.png

Load Barrier

1.从堆上加载对象引用时,不是以后使用该引用访问对象的时候
Object o = obj.fieldA;
<load barrier needed here>
Object p = o; // No barrier, not a load from heap
o.doSomething(); // No barrier, not a load from heap
int i = obj.fieldB; // No barrier, not an object reference
2.如果指针上的颜色是bad color(mark/relocate/remap),则修复它(repair/heal)
3.针对常见情况进行了优化

条形标记

  • 将堆分成多个逻辑域
  • 每个gc线程对应负责一个或多个逻辑条状域


    条状标记.png

gclog

gclog.png gclog2.png

参考文章:ZGC--Low-Latency-GC
觉得不错的文章,分享下:https://houbb.github.io/2018/11/28/java-gc-optimize

相关文章

  • 自己瞎叨叨两句ZGC

    啥是zgc? 一种可扩展的低延迟垃圾收集器 它的目标: 大堆收集 最大延迟时间不超过10ms gc停顿不会受到堆大...

  • 瞎叨叨两句

    最近的日子啊,一个字:乱。 每天睡觉之前会给自己一个令人期待的误会:睡过一觉后,拿出一针剂的鸡血静脉注射,会认为明...

  • 给反日小将瞎叨叨两句

    今天大旧都上演了一场惨剧,一位疑似毒驾司机高速驾驶宝马撞向了马自达,马自达当场粉碎,车上司机及乘客死亡。看到车祸现...

  • 瞎叨叨

    七月的尾巴抓不住,八月就已经开始了。 距离毕业已经有一个月的时间,最穷的时候,负债累累,也不想找爸妈要钱,毕竟,今...

  • 瞎叨叨

    这是一首简单的小情歌,唱着我们心中的白鸽。。。 上完夜班回来的我,在这夜深人静的时候,轻声的跟唱着这首歌,只因为,...

  • 瞎叨叨

    刚才一边做事一边想着,人类这种生物就是很奇怪,以前上班的时候老是想着没时间陪老人小孩,现在没上班有时间陪他们了,却...

  • 瞎叨叨

    中了茶的毒,果然翻来覆去的数绵羊…… 早上睡着了,然后又被冻醒了..... 想起,有人问我说:很久没有看见你写点什...

  • 瞎叨叨

    原来, 所有的奢望都是奢望,祈盼都是祈盼,没有丝毫的改变, 我错了, 是我太天真太幼稚, 依赖于别人, 尽管我们血...

  • 瞎叨叨

    今年的最后一天,首先祝我同桌生日快乐,然后回顾下我的2017,顺便展望一下2018。 工作上越来越顺手,当然也越来...

  • 瞎叨叨

    1.外面风呼呼地吹,老公在电脑前写文,宝宝在甜美的睡,我已好久不写文,生活中的大部分时间与孩子的吃喝拉撒有关,剩下...

网友评论

    本文标题:自己瞎叨叨两句ZGC

    本文链接:https://www.haomeiwen.com/subject/rdrmmctx.html