设为首页 加入收藏

TOP

Java虚拟机收集器之老年代收集器
2017-02-24 08:15:51 】 浏览:237
Tags: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的缺点


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Python实现子网掩码地址与位长的.. 下一篇JavaScript 启动性能瓶颈分析与解..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目