JVM垃圾回收器全面解析:从核心概念到选型指南
一、引言
在Java应用运行过程中,垃圾回收(Garbage Collection, GC)是内存管理的核心机制,直接影响程序性能。JVM提供了多种垃圾回收器,适用于不同场景。本文将系统梳理主流垃圾回收器的工作原理、适用场景及选型策略。
二、GC核心概念
- 分代收集:堆内存分为新生代(Young Generation)和老年代(Old Generation),采用不同回收策略。
- STW(Stop-The-World) :GC执行时暂停所有应用线程,时间长短直接影响响应速度。
- 吞吐量(Throughput) :单位时间内应用代码执行时间占比。
- 延迟(Latency) :单次GC导致的应用停顿时间。
三、垃圾回收器分类
分类维度 | 类型 | 代表回收器 |
---|---|---|
工作线程数 | 单线程/多线程 | Serial vs Parallel |
工作模式 | 并发/并行 | CMS vs G1 |
内存碎片处理 | 压缩/非压缩 | Serial(压缩) vs CMS(非压缩) |