JVM笔记 3 5 垃圾回收器

Java垃圾回收器解析
1. Serial收集器

单线程的收集器,这个单线程不仅仅是说他会用一个CPY或者一条收集线程去完成垃圾收集,更重要的是他要暂停其他所有线程直到GC结束,优点是采用了复制算法简单高效,对于运行在Client模式下的虚拟机是一个很好的选择。

2.ParNew收集器

是Serial回收器的多线程版本,其余大部分都和Serial回收器完全一样,但确是运行在Server模式下的虚拟机的首选新生代收集器,因为他可以和CMS收集器配合工作

3. Parallel Scavenge收集器

看上去和前面的ParNew回收器一致,但是有一个可控制的吞吐量,控制停顿时间,采用了GC的自适应的调节策略,可以根据当前的运行情况动态调节停顿时间和最大的吞吐量。

4. Serial Old收集器

Serial回收器 的 老年代版本

5. Parallel Old收集器

Parallel Scavenge回收器的老年代版本,使用多线程和 标记-整理 算法,

6. CMS 收集器

以最短的回收停顿时间作为目标的收集器, Concurrent Mark Sweep,可以看出是以 标记-清扫 实现的,分为四个步骤

  • 初始标记 , 仅仅关联GC Roots能直接关联到的对象
  • 并发标记
  • 重新标记 修正并且标记因为并发标记期间导致变化的对象标记
  • 并发清除 缺点是对对CPU资源⾮常敏感,在CPU核 ⼼数较少的情况下,对应⽤的运⾏速度有较⼤影响;⽆法处理浮动垃圾, 即在垃圾收集过程中总有新的垃圾不断产⽣,只能积累到下⼀次GC再收 集;标记-清除算法容易导致产⽣⼤量内存碎⽚,从⽽提前触发Full GC。

转载于:https://juejin.im/post/5a31227651882533d023106a

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值