-
Serial GC:
- 算法: 使用的是标记-清除算法。
- 特点: 串行执行,适用于单CPU环境或较小的堆内存配置。在新生代和老年代的回收中都是单线程执行,因此在进行垃圾回收时会暂停所有应用线程(Stop-The-World)。
-
Parallel GC (也称为吞吐量优先收集器):
- 算法: 在新生代中使用复制算法,老年代通常使用标记-压缩算法。
- 特点: 适用于多CPU环境,可以并行执行以提高垃圾回收速度,从而提高整体应用程序的吞吐量。在新生代回收时可以使用多个线程并行工作,但仍会在老年代回收时引起较长时间的暂停。
-
Concurrent Mark Sweep (CMS) GC (已废弃,但在某些旧版本JDK中可用):
- 算法: 主要使用标记-清除算法,特点是大部分工作可以在应用线程运行的同时并发进行,减少暂停时间。
- 特点: 旨在减少垃圾回收引起的暂停时间,适用于对响应时间要求较高的服务。但可能会导致内存碎片化,并且在极端情况下可能出现内存耗尽而触发Full GC,影响性能。
- 官方已放弃对代码库的维护,在老年代收集垃圾可能导致长时间的暂停,优化比较复杂;所以放弃。
-
G1 (Garbage
JVM垃圾回收器介绍
于 2024-06-13 09:38:56 首次发布