推荐答案
在 Java 虚拟机 (JVM) 中,常用的垃圾回收器包括以下几种:
- Serial GC:单线程垃圾回收器,适用于单核 CPU 环境。
- Parallel GC:多线程垃圾回收器,适用于多核 CPU 环境,注重吞吐量。
- CMS (Concurrent Mark Sweep) GC:并发垃圾回收器,注重减少停顿时间。
- G1 (Garbage First) GC:面向服务端应用的垃圾回收器,兼顾吞吐量和停顿时间。
- ZGC (Z Garbage Collector):低延迟垃圾回收器,适用于大内存应用。
- Shenandoah GC:低延迟垃圾回收器,适用于大内存应用。
本题详细解读
Serial GC
- 特点:单线程执行垃圾回收,适用于单核 CPU 环境。
- 适用场景:客户端应用或小型应用,内存需求不大。
- 优点:简单高效,适合单线程环境。
- 缺点:在多核环境下性能较差。
Parallel GC
- 特点:多线程执行垃圾回收,注重吞吐量。
- 适用场景:多核 CPU 环境,适合后台处理任务。
- 优点:高吞吐量,适合多核环境。
- 缺点:停顿时间较长。
CMS (Concurrent Mark Sweep) GC
- 特点:并发执行垃圾回收,减少停顿时间。
- 适用场景:对响应时间要求较高的应用。
- 优点:低停顿时间,适合交互式应用。
- 缺点:内存碎片问题,吞吐量较低。
G1 (Garbage First) GC
- 特点:面向服务端应用,兼顾吞吐量和停顿时间。
- 适用场景:大内存应用,对停顿时间和吞吐量都有要求。
- 优点:平衡吞吐量和停顿时间,适合大内存应用。
- 缺点:配置复杂,需要调优。
ZGC (Z Garbage Collector)
- 特点:低延迟垃圾回收器,适用于大内存应用。
- 适用场景:对延迟要求极高的应用,如实时系统。
- 优点:极低停顿时间,适合大内存应用。
- 缺点:需要较高的硬件支持。
Shenandoah GC
- 特点:低延迟垃圾回收器,适用于大内存应用。
- 适用场景:对延迟要求极高的应用,如实时系统。
- 优点:极低停顿时间,适合大内存应用。
- 缺点:需要较高的硬件支持。