现在的位置: 首页 > 操作系统 > 正文

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

2020年02月10日 操作系统 ⁄ 共 1048字 ⁄ 字号 评论关闭

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 是基于“标记-清除”算法的收集器,会产生大量的空间碎片。

本文永久更新链接地址:http://www.xuebuyuan.com/Linux/2017-02/140924.htm

以上就上有关Java虚拟机收集器之老年代收集器的相关介绍,要了解更多Java虚拟机收集器,Java虚拟机收集器之老年代收集器,编程,Linux编程,Linux Shell,Android,Android教程,JAVA,C语言,Python,HTML5内容请登录学步园。

抱歉!评论已关闭.