开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 14 天,点击查看活动详情
G1垃圾收集器特点
G1垃圾收集器有哪些特点,首先G1垃圾收集器的全称是 Garbage-First ,翻译成中文的意思就是垃圾优先,可以理解为哪块垃圾最多就优先去清理它。
1、空间整合
当然 G1 垃圾收集器它能完成垃圾优先收集它的第一个特点就是空间整合,那么什么是空间整合呢,因为垃圾收集器它回收的区域是堆,在G1垃圾收集器中它把堆空间化成了很多个相等的区域,每一块区域称之为 Region 。
比如内存空间有一个G,那么把这个一个G的内存空间分成500块,每一个 Region 的空间大概就是在 2M 左右,这就是空间整合。
并且在空间整合的基础上保留了分代模型,是分为四种:1、Eden 区域 2、Survivor 区域 3、old 区域,除此之外还有一个专门用于存放大对象的区域叫做 Humongous。\
2、多线程 + 并发 +可预测停顿
多线程是说 G1 收集器在工作的时候会开启多个垃圾回收器的线程进行垃圾的清理。
并发就是说在清理垃圾的时候它会标记三个状态:1、初始标记 2、并发标记 3、最终标记 三个阶段。
在标记阶段它会让GC 线程和业务线程同时运行,从而减少GC过程中的停顿,如果不做并发的话就会在GC整个过程中都暂停所有的业务线程。
同时在初始标记阶段和并发阶段都是GC线程和业务线程同时运行的,只有在最终标记和清理阶段才会暂停业务线程从而执行GC线程。
并且它是可预测停顿的,在并发标记阶段是可以预测GC时间和暂停时间的。
最后G1垃圾收集器的GC线程去查看哪部分空间的垃圾比较多就优先收集哪一块垃圾。