垃圾回收器
GC分类与性能指标
按线程数:
可以分为串行与并行垃圾回收器
- 串行回收指的是在同一时间段内只允许有一个CPU用于执行垃圾回收操作,此时工作线程被暂停,直至垃圾收集工作结束。
~在诸如单CPU处理器或者较小的应用内存等硬件平台不是特别优越的
场合,串行回收器的性能表现可以超过并行回收器和并发回收器。所
以,串行回收默认被应用在客户端的 Client模式下的JVM中
~在并发能力比较强的CPU上,并行回收器产生的停顿时间要短于串行回
收器。
- 并行收集可以运用多个CPU同时执行垃圾回收,因此提升了应用的吞吐量,不过并行回收仍然与串行回收一样,采用独占式,使用了“Stop-the- world”机制。
按工作模式:
可以分为并发式、独占式 垃圾回收器。
- 并发式垃圾回收器与应用程序线程交替工作,以尽可能减少应用程序的停顿时间。
- 独占式垃圾回收器( Stop the world)一旦运行,就停止应用程序中的所有用户线程,直到垃圾回收过程完全结束
按碎片处理方式分:
可分为压缩式、非压缩式垃圾回收器。
- 压缩式垃圾回收器会在回收完成后,对存活对象进行压缩整理,消除回收后的碎片,就不会产生内存碎片
- 非压缩式的垃圾回收器不进行这步操作 。
按工作内存分:
分为年轻代、老年代垃圾回收器
性能指标
一款优秀的垃圾收集器最多同时满足 上图3项红色中的2项
吞吐量、暂停时间,抓住这两个重点!
吞吐量
暂停时间
现在的标准:在最大吞吐量优先的情况下,尽量的降低停顿时间