垃圾回收算法

2020-06-15  本文已影响0人  MisAutumn
  1. Serial: 新生代,单线程,STW,复制
    Serial Old:老年代,单线程,STW,标记整理
    适合客户端模式下的虚拟机,内存占用最小,简单高效
  2. PerNew:STW,并行,复制
    CMS:多线程,标记-清除
初始标记:gc roots直接连接的对象
并发标记:
重新标记:修正标记错误的
并发清除:

优点:低延迟,适合互联网等注重响服务应速度的情况
缺点:
 i. 并发占用处理器资源降低吞吐量
 ii. 并发清除时会产生大量浮动垃圾,需要为其预留一定空间;如果没有足够空间导致并发失败,此时调用Serial Old代替,冻结用户线程。
 iii. 标记-清除算法会让内存碎片化,没有完整内存而导致full gc;设置参数可以提前进行STW内存整理。

  1. Parallel Scavenge: STW,并行,复制,提高吞吐量。
    Parallel Old: STW,并行,标记-整理
    适合在后台运算,不需要太多及时交互的任务,可以自适应调节中断时间。
  2. G1:面向服务端的垃圾回收器,局部标记-复制,整体标记-整理
    优点:避免内存碎片化
    缺点:
上一篇下一篇

猜你喜欢

热点阅读