JVM 垃圾回收算法和收集器总结

GC 垃圾收集算法

标记-清除算法

算法分为“标记”和“清除”两个阶段:首先标记出所有需要回 收的对象,在标记完成后,统一回收掉所有被标记的对象。
主要缺点有两个:

  1. 执行效率不稳定。
  2. 内存空间的碎片化问题。

标记-复制算法

可用内存按容量划分为大小相等的两块,每次只使用其中的一块。
缺点:复制回收算法的代价是将可用内存缩小为了原来的一半。

标记-整理算法

标记过程仍然与“标记-清除”算法一样,让所有存活的对象都向内存空间一端移动,然后直接清理掉边界以外的内 存。

垃圾收集器

Serial 收集器

单线程工作的收集器,垃圾收集时,必须暂停其他所有工作线程,直到它收集结束。

ParNew 收集器

多线程工作的收集。

Parallel Scavenge 收集器

并行收集的多线程,的新生代收集器。

Serial Old 收集器

是Serial收集器的老年代版本,单线程收集器。

Parallel Old 收集器

是Parallel Scavenge收集器的老年代版本,支持多线程并发收集,基于标记-整理算法实现。

CMS 收集器

以获取最短回收停顿时间为目标的收集器。

Garbage First 收集器

主要面向服务端应用的垃圾收集器。


JVM 垃圾回收算法和收集器总结
http://www.wangxiaohuan.com/2021/03/28/2021-03-28/
作者
吃素的左撇子
发布于
2021年3月28日
许可协议