java虚拟机收集器之老年代收集器

java虚拟机收集器之老年代收集器

Serial Old收集器

Serial Old收集器是Serial收集器的老年代版本,同样是一个单线程收集器,使用“标记-整理”算法。这个收集器的主要意义也是在于Client模式下的虚拟机使用。
主要用途:
1、一种用途是在JDK1.5以及之前的版本与Parallel Scavenge收集器搭配使用。
2、另一种用途就是作为CMS收集器的后备预案,在并发收集发生Concurrent Mode Failure时使用。
这里写图片描述

Parallel Old收集器

Parallel old 是Parallel Scavenge收集器的老年代版本,使用多线程和“标记-整理”算法。这个收集器是JDK6才出现的,在之前Parallel Scavenge一直处于尴尬状态:如图所示

如果新生代选择了Parallel Scavenge 收集器老年代除了选择Serial Old(MSC)之外别无选择。由于老年代Serial Old 在服务端应用的性能上的拖累,使用Parallel Scavenge 不一定能在整体应用上获得吞吐量最大化的效果。直到Parallel Old收集器出现之后,“吞吐量优先”的收集器终于有了名副其实的应用组合在注重吞吐量以及CPU资源敏感的场合,都可以优先考虑Parallel Scavenge 和Parallel Old的组合:
这里写图片描述

CMS收集器

CMS收集器是一种以获取最短回收停顿时间为目标的收集器。目前很大一部分的java应用集中在互联网或者B/S的服务器上,这类应用尤其重视服务的相应速度。CMS收集器是基于“标记-清除”算法实现的,他的运作分为四个过程:
1、初始标记
2、并发标记
3、重新标记
4、并发清除
其中,初始标记、重新标记这两个步骤仍然需要“stop the world”。初始标记仅仅是标记一下GC Roots能直接关联到的对象,速度很快,并发标记阶段就是进行GC roots Tracing的过程。
CMS收集器的运作步骤:
这里写图片描述

CMS的缺点

  • CMS对收集器对CPU资源非常敏感。
  • CMS无法处理浮动垃圾
  • CMS 是基于“标记-清除”算法的收集器,会产生大量的空间碎片。

广告时间

博客已经迁移到新地址,欢迎访问: 小令童鞋

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值