JVM 垃圾回收算法和收集器总结
GC 垃圾收集算法
标记-清除算法
算法分为“标记”和“清除”两个阶段:首先标记出所有需要回 收的对象,在标记完成后,统一回收掉所有被标记的对象。
主要缺点有两个:
- 执行效率不稳定。
- 内存空间的碎片化问题。
标记-复制算法
可用内存按容量划分为大小相等的两块,每次只使用其中的一块。
缺点:复制回收算法的代价是将可用内存缩小为了原来的一半。
标记-整理算法
标记过程仍然与“标记-清除”算法一样,让所有存活的对象都向内存空间一端移动,然后直接清理掉边界以外的内 存。
垃圾收集器
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/