Java垃圾收集器详解
1. Serial收集器
- 算法:新生代使用标记-复制算法,老年代使用标记-整理算法。
- 特点:单线程,会触发全局停顿(Stop The World)。
- 适用场景:单核心或小型应用。
2. ParNew收集器
- 算法:新生代使用标记-复制算法,老年代使用标记-整理算法。
- 特点:多线程,注重吞吐量,会触发全局停顿。
- 适用场景:多核心服务器。
3. Parallel Scavenge收集器
- 算法:新生代使用标记-复制算法,老年代使用标记-整理算法。
- 特点:多线程,强调吞吐量优先,适用于后台运算任务。
- 适用场景:吞吐量优先的应用。
4. Serial Old收集器
- 算法:老年代使用标记-整理算法。
- 特点:单线程,会触发全局停顿。
- 适用场景:单核心或小型应用。
5. Parallel Old收集器
- 算法:老年代使用标记-整理算法。
- 特点:多线程,注重吞吐量,会触发全局停顿。
- 适用场景:多核心服务器。
6. CMS(Concurrent Mark Sweep)收集器
- 算法:老年代使用标记-清除算法。
- 特点:并发收集,减少停顿时间,但存在碎片问题。
- 适用场景:强调低延迟,对停顿时间敏感的应用。
7. G1(Garbage-First)收集器
- 算法:采用标记-整理算法。
- 特点:面向服务端,垃圾收集停顿更可控,可预测。
- 适用场景:大堆内存,注重低延迟。