3 Java虚拟机之垃圾收集器
本文是根据《深入理解Java虚拟机》自己整理的笔记,仅供个人学习。
如果说收集算法是内存回收的方法论,那么垃圾收集器就是内存回收的具体实现。
1 serial 收集器
单线程的收集器,进行垃圾收集时,暂停其他所有工作线程直到收集结束。
优点:没有线程交互的开销 缺点:stop the world
2 ParNew 收集器
serial收集器的多线程版本,多条线程进行垃圾回收。
3 Parallel Scavenge 收集器
Parallel Scavenge 收集器的目的是尽可能达到一个高的吞吐量。即 CPU用于运行用户代码的时间 | CPU总消耗时间的比值。
4 Serial Old 收集器
单线程收集器,使用标记-整理算法。
如上图3-6.
5 Parallel Old收集器
使用多线程和标记-整理算法。
6 CMS收集器
CMS是一种以获得最短回收停顿时间为目标的收集器。收集过程分为4个步骤:
(1)初始标记
(2)并发标记
(3)重新标记
(3)并发清除
优点:并发收集 低停顿
7 G1收集器
G1收集器的运作大概分为以下几个步骤:
(1) 初始标记
(2) 并发标记
(3)最终标记
(4)筛选回收