GC垃圾回收算法 和 GC回收器 (二)

垃圾回收算法.

十种GC回收器

在这里插入图片描述

Serial 回收器

  • 单线程收集
  • 针对新生代
  • 使用复制算法
  • 会产生较长时间的停顿(Stop the world),进行垃圾收集时,必须暂停所有工作线程,直到完成
  • 不会产生线程切换的开销
    在这里插入图片描述

Serial Old 回收器

  • 老年代单线程回收
  • 使用标记整理算法

Parallel Scavenge回收器

jdk 1.8默认的垃圾回收器

  • 多线程并行回收
  • 新生代回收器,采用复制算法
  • 追求高吞吐量,充分利用CPU资源【吞吐量优先】
  • 进行垃圾收集时,必须暂停所有工作线程,直到完成

在这里插入图片描述

Parallel Old回收器

  • 老年代多线程回收
  • 使用标记整理算法

ParNew回收器

  • 多线程并行回收
  • 新生代回收器,采用复制算法
    ParNew收集器是Serial收集器的多线程版本,许多运行在Server模式下的虚拟机中首选的新生代收集器,除Serial外,只有它能与CMS收集器配合工作。

CMS 回收器

  • 并发低停顿收集器
  • 使用标记清除算法
    • 四个阶段
      • 初始标记 (标记GC Roots可以直接关联的对象,速度很快)
      • 并发标记 (进行GC Roots Tracing,判断对象是否存活)
      • 重新标记 (校准并发标记对象的存活状态)
      • 并发清除 (回收标记的对象)
    • 初始标记和重新标记仍然需要Stop The World
    • CMS缺点
      - 由于并发带来的CPU资源消耗
      - 由于并发收集在回收过程中产生的浮动垃圾无法清除
      - 使用标记清除算法带来的空间碎片问题

在这里插入图片描述

G1回收器

  • 使用分代垃圾回收策略。
  • 新特性:使用分区算法。使内存不再连续。
  • 支持很大的堆,高吞吐量。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值