HotSpot各垃圾收集器的特点

垃圾收集器是内存回收的具体实现,那么HotSpot中有哪些垃圾收集器呢?

Serial 收集器

       是最基本,历史最悠久的收集器,是一个单线程收集器,它在进行垃圾收集时会停止其它所有工作线程,直到收集结束。它是虚拟机运行在Client模式下的默认新生代收集器,它简单而高效,没有线程交互的成本,单线程垃圾收集效率最高,而且在用户桌面应用场景中,分配给虚拟机管理的内存一般不会很大,垃圾回收时停顿的时间完全可以控制在几十、一百多毫秒内,只要不频繁发生,完全可以接受。

  • ParNew 收集器

       是 Serial 收集器的多线程版本,是运行在 Server 模式下的虚拟机中首选的新生代收集器。除了 Serial 收集器,目前是唯一一个 CMS 收集器配合工作的。它默认开启的线程数和 CPU 数量相同。

  • Parallel Scavenge 收集器 

       是一个新生代收集器,使用复制算法,并行的多线程收集器,它的目的是达到可控的吞吐量(就是 CPU 运行用户代码的时间与 CPU 总消耗时间的比值,高的吞吐量代表着高效的利用CPU)。而停顿时间就是牺牲吞吐量和新生代空间换来的。

  • Serial Old 收集器

       是 Serial 收集器的老年代版本,同样是一个单线程收集器使用“标记 - 整理”算法,也是给 Client 模式下的虚拟机使用。

  • Parallel Old 收集器

       是 Parallel Scavenge 收集器的老年代版本,使用多线程和“标记 - 整理”算法。

  • CMS 收集器

       是一种以获取最短回收停顿时间为目标的收集器。基于“标记 - 清除”算法,分为初始标记、并发标记、重新标记、并发清除四个步骤。优点是并发收集、低停顿。但也有三个明显缺点:对 CPU 资源非常敏感、无法处理浮动垃圾,可能会出现“Concurrent Mode Failure”失败而导致另一次 Full GC 产生、“标记 - 清除”算法会导致大量空间碎片的产生,给大对象分配带来麻烦。

  • G1 收集器

       面向服务端的垃圾收集器,与其它垃圾收集器相比,它具有:并行与并发、分代收集、空间整合、可预测的停顿。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值