垃圾回收器

163 阅读1分钟

串行垃圾回收

Serial收集器

单线程,垃圾回收时其他用户线程将阻塞,采用标记复制算法,适合小型应用

Serial Old 收集器

Serial Old是Serial收集器的老年代版本,同样是一个单线程收集器,使用标记-整理算法。适合小型应用。

并行收集器(吞吐量优先)

Parallel Scavenge收集器

Parallel Scavenge也是一款用于新生代的多线程收集器,也是采用**复制算法**。与ParNew的不同之处在于Parallel Scavenge收集器的目的是达到一个可控制的吞吐量,而ParNew收集器关注点在于尽可能的缩短垃圾收集时用户线程的停顿时间。++ 所谓吞吐量就是CPU用于运行用户代码的时间与CPU总消耗时间的比值, 即吞吐量=运行用户代码时间/(运行用户代码时间+垃圾收集时间)。

Parallel Old收集器

Parallel Old使用多线程和“标记-整理”算法,可以充分利用多核CPU的计算能力。

注重吞吐量与CPU资源敏感的场合,与Parallel Scavenge 收集器搭配使用,jdk7和jdk8默认使用该收集器作为老年代收集器。

CMS收集器(响应时间优先)

概念:CMS(Concurrent Mark Sweep)收集器是一种以获取最短回收停顿时间为目标的收集器。采用的算法是“标记-清除

优点:并发收集,低停顿

适用场景:重视服务器响应速度,要求系统停顿时间最短。