美文网首页
Day 13 G1和ZGC

Day 13 G1和ZGC

作者: 小周爱吃瓜 | 来源:发表于2022-03-21 18:57 被阅读0次

G1 不再专门为年轻代和老年代分区。用的是region.

Screen Shot 2022-03-21 at 6.44.44 PM.png

标记流程可以分为

初始标记-》并发标记->最终标记-》筛选回收

  • 初始标记:
    标记gc roots能够关联的对象,需要暂停用户线程,但是时间会控制在200ms以内这样

  • 并发标记:
    从GC roots开始进行可达性分析,找出存活的对象,可以和用户线程并发执行

  • 最终标记:
    用户线程并发执行导致变动的数据,需要暂停用户线程.

  • 筛选回收:
    对region的回收成本和价值进行排序,根据用户希望的GC pause time指定制定回收计划.

Screen Shot 2022-03-21 at 6.50.30 PM.png

ZGC:

jdk11引入zgc收集器,不论是物理还是逻辑,都不存在新老年代的概念了,会分为一个个page,gc时对其进行压缩,因此没有碎片的问题。

吹一波:
停顿时间短: 10ms以内
TB级别内存

Screen Shot 2022-03-21 at 6.52.39 PM.png

用到了读屏障和颜色指针.

在ZGC中,会对加载的引用进行测试,看是否设置了某些位.
ZGC的标记使用的是染色指针技术.

与标记对象的传统算法相比,ZGC在指针上做标记,在访问指针时加入LoadBarrier(读屏障),比如当对象正被GC移动,指针上的颜色就会不对.
读屏障就会先把指针更新为有效地址再返回,也就是,永远只有单个对象读取时有概率被减速,而不存在为了保持应用与GC一致而粗暴整体的StopTheWorld

相关文章

  • Day 13 G1和ZGC

    G1 不再专门为年轻代和老年代分区。用的是region. 标记流程可以分为 初始标记-》并发标记->最终标记-》筛...

  • GC:垃圾回收算法

    简述 G1、ZGC G1 之前都是将内存看做两块整体(Young 和 Old 区)。 G1 是将内存分成一小块一小...

  • Java JVM ZGC垃圾回收器

    1.ZGC简介 ZGC(Z Garbage Collector)是一款基于Region内存布局(有点类似于G1)的...

  • 通过12 张图带你彻底理解 ZGC及调优

    导语 今天来聊一聊 ZGC。ZGC(Z Garbage Collector) 是一款性能比 G1 更加优秀的垃圾收...

  • 常用jvm启动参数

    jdk8+G1现在看是个主流组合,cms确实配置太繁琐了,所以jdk后续已经弃用了cms主推G1和zgc这种不太需...

  • 作业汇总链接

    【DAY 1】G1 力云 关于观察周围现象的记录和分析【DAY 2】G1 力云 观察周围现象,记录30个优点【DA...

  • ZGC 详解

    目录 ZGC简介和性能 ZGC流程介绍 ZGC堆的内存布局 ZGC对NUMA支持 颜色指针在ZGC中的运用 读屏障...

  • ZGC源码分析(2)- ZGC内存管理

    ZGC为了支持TB级内存,设计了分页管理(类似于G1的分区);为了能够快速的进行并发标记和并发移动,对内存空间重新...

  • JVM 面试必问的 CMS,你懂了吗?

    前言 虽然 CMS 已经是很古老的垃圾回收器了,大家现在动不动就G1、ZGC啥的,但是据我所了解,还是有很多公司的...

  • JDK13的 5个新特性,抢先看,开车都追不上了!

    JDK13:5个新特性: 350: Dynamic CDS Archives 351: ZGC: Uncommit...

网友评论

      本文标题:Day 13 G1和ZGC

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