新一代垃圾回收器 ZGC 设计与实现 阅读笔记 第1章 垃圾回收器概述

本文介绍了ZGC(Z Garbage Collector),一种旨在降低垃圾回收停顿时间的并发收集器。ZGC的主要目标是在4TB内存环境下保持10ms以内的停顿时间,同时对程序吞吐量的影响低于15%。它采用了全量回收、颜色指针、读屏障等技术,解决了G1的不足,如内存利用率不高和长时间停顿问题。然而,ZGC不支持分代内存管理和压缩指针,且在某些功能和稳定性方面仍有待提升。
摘要由CSDN通过智能技术生成

垃圾回收算法:

  引用计数法:

     给对象分配一段额外的空间,用于维护一个计数器,对象增加了一个新的引用,则增加计数器的值。一个引用关系失效,则减少计数器的值。但是需要解决循环依赖的问题

可达性分析法: 

    通过根集合作为起始点,根据引用关系开始搜索。JVM中常见的根有线程栈帧,符号表,字符串表,对象监视器,元数据对象。

  并发执行垃圾回收器: CMS,G1,ZGC,Shenandoah

 

ZGC 解决 G1的不足 

    G1 :YGC回收所有新生代分区,混合回收时回收所有的新生代分区和部分老年代分区;使用RSet管理对象引用关系

    1. 停顿时间过长 : G1停顿 几十到几百毫秒

     2.内存利用率不高 : 引用关系处理需要消耗额外的内存,一般占整个内存的1%到20%

      3.支持内存有效,高于100GB,内存过大导致停顿时间增长

ZGC 设计目标

    1. 支持4TB内存

    2.停顿时间控制在10ms之内

    3.对程序吞吐量影响小于15%

ZGC把一切能并发处理的工作都并发执行,G1的停顿时间主要来自 垃圾回收阶段的复制算法,在复制算法中,需要把对象转移到新的空间中,并且更新其他对象到这个对象的引用。ZGC就是把对象的转移也并发执行,从而满足停顿时间在10ms以下

GC 复制算法是利用From 空间进行分配的。当From 空间被完全占满时,GC 会将活动
对象全部复制到To 空间。当复制完成后,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值