19
2020
10

常见的垃圾收集器?

Serial收集器:单线程收集器


ParNew收集器:,新生代收集器,Serial收集器的多线程版本


Parallel Scavenge收集器:新生代收集器,使用复制算法。是用来实现最大吞吐量(代码运行时间/(代码运行时间+垃圾收集的时间))


Serial Old收集器:Serial收集器的老年代版本


Parallel Old收集器:ParNew收集器的老年代版本(一般使用Parallel Scavenge + Parallel Old)


CMS收集器:是一种以获取最短停顿时间为目标的收集器。分为4个步骤:初始标记,并发标记,重新标记,并发清除

采用 标记-清除算法

(1)初始标记:标记GC Root能直接关联到的对象 (stop the world)

(2)并发标记:进行Gc Root Tracing的过程

(3)重新标记:修正并发标记期间用户线程序继续工作而导致的标记的变动(stop the world)

(4)并发清除:清除未被标记的对象


G1收集器:可以独立的管理整个gc堆。步骤:初始标记,并发标记,最终标记,筛选回收(首先对各个Region价值排序)

从整体上看是:标记-整理算法 , 从局部上看(两个region)采用复制算法

« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。