java cms垃圾回收器总结

cms (concurrent mark sweep) 基于标记-清除 算法实现的。获取最短停顿时间的收集器

一。主要步骤:

1. 初始化标记 ( inittial mark) :需要stop world

    仅标记gc root(系统类加载器,线程栈对象,本地栈对象等) 可以直接关联到的对象,由于只会标记第一层,所以很快

2.并发标记 (concureny mark): 耗时最长

  与应用线程同时执行,不需要 stop world,根据1的结果,标记全部对象

3.重新标记(remark):需要stop world

 标记 并发标记过程中由于用户运行而产生变化的对象,耗时较短

4.并发清除

二。缺点

1. cpu敏感

2. 无法处理浮动垃圾(cms运行阶段内存无法满足用户线程的需要:1 老年代申请内存过快,2.新生代过来的对象过多,),导致full gc,则使用SerialOld做后备收集器

3.基于 标记-清除算法实现,会产生过多的垃圾碎片,解决方案:fullGC 进行碎片压缩

 

 

  

转载于:https://my.oschina.net/u/1388024/blog/1551056

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值