垃圾收集器 | 线程 | 算法 | 工作区域 | 并发 | 适用场合 | 优缺点 | 可配合对象 |
---|---|---|---|---|---|---|---|
Serial | 单线程 | 复制算法 | 新生代 | 否 | 单CPU;Client模式下 | 缺:stop the world; 优:简单高效,没有线程交互开销,专注于GC; | CMS;Serial Old |
ParNew | 多线程 | 复制算法 | 新生代 | 是 | 多CPU;Server模式下 | 缺:stop the world;优:并行并发GC | CMS;Serial Old |
Parallel Scavenge | 多线程 | 复制算法 | 新生代 | 是 | 吞吐量控制,Client,server均可以 | 主要关注吞吐量,通过吞吐量的设置控制停顿时间,适应不同的场景 | Serial Old;Parallel Scavenge |
Serial Old | 单线程 | 标记=整理算法 | 老年代 | 否 | 主要Client模式下 | 缺:stop the world | Serial,ParNew,Parallel Scavenge |
Parallel Old | 多线程 | 复制算法(Parallel Scavenge老年代版本) | 老年代 | 是 | 吞吐量控制,Client,server均可以 | 主要关注吞吐量,通过吞吐量的设置控制停顿时间,适应不同的场景 | Parallel Scavenge |
CMS(Concurretn Mark Sweep) | 多线程 | 标记清除算法 | 老年代 | 是 | 互联网站;B/S系统服务端 | 缺:CPU资源敏感,无法处理浮动垃圾,产生大量内存碎片 优:并发收集,低停顿 | Serial,ParNew,Serial Old是其备选方案 |
G1 | 多线程 | 整体基于标记整理算法 | 新生代&老年代 | 是 | 面向服务端应用 | 优:并行与并发,分代收集,空间整合(标记整理算法),可预测停顿 |
垃圾回收器对比
最新推荐文章于 2025-03-28 15:25:21 发布