垃圾收集器分类

垃圾收集器分类:

Serial收集器(新生代 复制算法):
单线程,收集的时候会停掉其他所有线程直到它收集结束。
简单高效,对于限定CPU的环境来说,Serial收集器由于没有线程交互的开销,所以可以获得最高的单线程收集效率。
所以,Serial对于运行在Client模式下的虚拟机来说是一个很好的选择。

ParNew收集器(新生代 复制算法):
Serial收集器的多线程版本,在单CPU环境中绝对不会比Serial效果更好,甚至由于存在线程交互的开销,ParNew在
通过超线程技术实现两个CPU的环境中都不难百分之百保证可以超越Serial。当然,随着可以使用的CPU的数量的增加,
它对于GC系统资源的有效利用还是很有好处的。

Parallel Scavenge收集器(新生代 复制算法):
特点是与其他收集器的关注点不同,CMS等收集器的关注点是尽可能地缩短垃圾收集时用户线程的停顿时间,而Parallel Scavenge
的目标则是达到一个可控制的吞吐量。比如虚拟机总共运行100分钟,其中垃圾收集花掉1分钟,那么吞吐量就是99%。    
自适应调节策略:设置开关参数-XX:+UseAdaptiveSizePolicy,虚拟机会根据当前系统的运行情况收集性能监控信息,
动态调整这些参数以提供最合适的停顿时间或者最大的吞吐量。

Serial Old收集器(老年代 标记-整理算法):
和Serial一样,是Serial的老年代版本,主要用途:jdk1.5之前搭配Parallel Scavenge使用,另一种用途是作为CMS收集器的后备
预案,在并发收集发生Concurrent Mode Failure时使用。

Parallel Old收集器(老年代 标记-整理算法):
为了和Parallel Scavenge组合,在注重吞吐量和CPU资源敏感的场合,都可以优先考虑此组合。因为Parallel Scavenge无法和CMS组合。

CMS收集器(老年代 标记-清除算法)
一种以获取最短回收停顿时间为目标的收集器。整个过程分为四步:初始标记,并发标记,重新标记,并发清除。
优点是并发收集,低停顿。缺点是对CPU资源很敏感,无法处理浮动垃圾,基于标记-清除算法碎片过多。

G1收集器(分代收集 整体基于标记-整理算法,局部基于复制算法):
一款面向服务的应用的垃圾收集器。特点:并行与并发、分代收集、空间整合、可预测的停顿。整个过程分为
初始标记,并发标记,最终标记,筛选回收。

猜你喜欢

转载自blog.csdn.net/dx94sg/article/details/80418946
今日推荐