垃圾回收算法
2020-06-15 本文已影响0人
MisAutumn
-
Serial: 新生代,单线程,STW,复制
Serial Old:老年代,单线程,STW,标记整理
适合客户端模式下的虚拟机,内存占用最小,简单高效 -
PerNew:STW,并行,复制
CMS:多线程,标记-清除
初始标记:gc roots直接连接的对象
并发标记:
重新标记:修正标记错误的
并发清除:
优点:低延迟,适合互联网等注重响服务应速度的情况
缺点:
i. 并发占用处理器资源降低吞吐量
ii. 并发清除时会产生大量浮动垃圾,需要为其预留一定空间;如果没有足够空间导致并发失败,此时调用Serial Old代替,冻结用户线程。
iii. 标记-清除算法会让内存碎片化,没有完整内存而导致full gc;设置参数可以提前进行STW内存整理。
-
Parallel Scavenge: STW,并行,复制,提高吞吐量。
Parallel Old: STW,并行,标记-整理
适合在后台运算,不需要太多及时交互的任务,可以自适应调节中断时间。 -
G1:面向服务端的垃圾回收器,局部标记-复制,整体标记-整理
优点:避免内存碎片化
缺点: