JVM 有哪些垃圾回收器?

如果说垃圾收集算法是内存回收的方法论,那么垃圾收集器就是内存回收的具体
实现。下图展示了 7 种作用于不同分代的收集器,其中用于 回收 新生代 的收集器
包括 Serial PraNew Parallel Scavenge ,回收 老年代 的收集器包括 Serial
Old Parallel Old CMS ,还有用于回收整个 Java 堆的 G1 收集器 。不同收集器
之间的连线表示它们可以搭配使用。

 

Serial 收集器(复制算法): 新生代单线程收集器,标记和清理都是单线
程,优点是简单高效;
ParNew 收集器 (复制算法): 新生代收并行集器,实际上是 Serial 收集器
的多线程版本,在多核 CPU 环境下有着比 Serial 更好的表现; Parallel Scavenge 收集器 (复制算法): 新生代并行收集器,追求高吞吐
量,高效利用 CPU。吞吐量 = 用户线程时间/(用户线程时间+GC 线程时
间),高吞吐量可以高效率的利用 CPU 时间,尽快完成程序的运算任务,
适合后台应用等对交互相应要求不高的场景;
Serial Old 收集器 (标记-整理算法): 老年代单线程收集器,Serial 收
集器的老年代版本;
Parallel Old 收集器 (标记-整理算法): 老年代并行收集器,吞吐量优
先,Parallel Scavenge 收集器的老年代版本;
CMS(Concurrent Mark Sweep)收集器(标记-清除算法): 老年代并行收
集器,以获取最短回收停顿时间为目标的收集器,具有高并发、低停顿的
特点,追求最短 GC 回收停顿时间。
G1(Garbage First)收集器 (标记-整理算法): Java 堆并行收集器,G1
收集器是 JDK1.7 提供的一个新收集器,G1 收集器基于“标记-整理”算法
实现,也就是说不会产生内存碎片。此外,G1 收集器不同于之前的收集器
的一个重要特点是:G1 回收的范围是整个 Java 堆(包括新生代,老年
代),而前六种收集器回收的范围仅限于新生代或老年代。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值