垃圾回收器

GC分类与性能指标

按线程数:
可以分为串行并行垃圾回收器
垃圾回收器

  • 串行回收指的是在同一时间段内只允许有一个CPU用于执行垃圾回收操作,此时工作线程被暂停,直至垃圾收集工作结束。

~在诸如单CPU处理器或者较小的应用内存等硬件平台不是特别优越的
场合,串行回收器的性能表现可以超过并行回收器和并发回收器。所
以,串行回收默认被应用在客户端的 Client模式下的JVM中
~在并发能力比较强的CPU上,并行回收器产生的停顿时间要短于串行回
收器。

  • 并行收集可以运用多个CPU同时执行垃圾回收,因此提升了应用的吞吐量,不过并行回收仍然与串行回收一样,采用独占式,使用了“Stop-the- world”机制。

按工作模式:
可以分为并发式独占式 垃圾回收器。

  • 并发式垃圾回收器与应用程序线程交替工作,以尽可能减少应用程序的停顿时间。
  • 独占式垃圾回收器( Stop the world)一旦运行,就停止应用程序中的所有用户线程,直到垃圾回收过程完全结束
  • 垃圾回收器

按碎片处理方式分:
可分为压缩式非压缩式垃圾回收器。

  • 压缩式垃圾回收器会在回收完成后,对存活对象进行压缩整理,消除回收后的碎片,就不会产生内存碎片
  • 非压缩式的垃圾回收器不进行这步操作 。

按工作内存分:
分为年轻代老年代垃圾回收器

性能指标

垃圾回收器

一款优秀的垃圾收集器最多同时满足 上图3项红色中的2项

吞吐量、暂停时间,抓住这两个重点!


吞吐量
垃圾回收器


暂停时间
垃圾回收器

现在的标准:在最大吞吐量优先的情况下,尽量的降低停顿时间