取得授权转载本文,请联系Dr. Tao Mao邮箱(yiyeguhu@gmail.com)。
日前,Hotspot JVM开发者小组召开了一次视频会议来讨论CMS 垃圾收集器的“退休”事宜(http://openjdk.java.net/jeps/291)。此次会议是Hotspot开发者小组在邮件列表里线上讨论的延伸,主要的参与方是来自甲骨文、谷歌、RedHat、SAP、推特等公司的工程师们。
CMS 垃圾收集器就一款针对低延时要求的JVM垃圾收集器,经常使用于Java Web 服务器;G1 垃圾收集器则是Hotspot JVM主要开发公司甲骨文认为的CMS 的替代者。
会议总结如下:
JEP 291(废弃CMS 垃圾收集器)的目的
Oracle工程师Jon表示:G1 垃圾收集器在很多应用中的表现越来越好;希望跑在CMS上的应用能够迁移到G1垃圾收集器上来。Oracle很可能在JDK9 中宣布废弃(deprecate)HotspotCMS,并在JDK10 或 JDK 11时停止支持它。其中JDK9可能将于2017年3月发布。
希望继续使用和支持CMS 垃圾收集器的理由
来自谷歌和jClarity的工程师均表达了G1 垃圾收集器在有些应用上的表现不如CMS垃圾收集器。特别是它在CPU资源方面会带来10%-20%的额外消耗,这在数据中心的使用中不能让人满意。谷歌工程师Jeremy认为,性能测试显示是G1的writebarrier引起了额外CPU消耗。甲骨文工程师Jon则表示G1开发者会进一步在这些方面改进它。
将来继续开发CMS 垃圾收集器的各方兴趣
谷歌、推特、SAP等公司均表示了不同程度的继续开发、支持CMS 垃圾收集器的兴趣,使其将来以某种独立于HotspotJVM实现的方式继续存在。各方讨论了继续使用原有Hotspot开发、测试平台的可能性。最终,讨论重点聚焦到如何将CMS垃圾收集器代码从Hotspot代码中分离出来,其中提到需要进一步研究Shenandoah垃圾收集器(RedHat正在开发的超低延时垃圾收集器 http://openjdk.java.net/jeps/189)的代码结构,以期望能与CMS垃圾收集器代码分离的工作相结合。
大家决定,会后研究CMS 垃圾收集器代码分离的工作量,以及其与Shenandoah垃圾收集器工作结合的问题。大家将在2016年9月的第二次视频会议和Java One年会的研讨会上继续讨论。
看来,Hotspot JVM中的CMS 垃圾收集器在不久的将来要退出历史舞台,那它又将以另一种面貌继续存在吗?国内的阿里、京东等Java大厂要关注一下嚒?
相关推荐
### 性能工程师指南:玩转OpenJDK HotSpot垃圾收集器 #### 一、性能工程概述 在软件开发过程中,性能工程是一个重要的环节,它不仅涵盖了对软件性能的需求定义与测试计划制定,还包括了软件的开发、实施及后续的...
性能工程师指南:玩转OpenJDK HotSpot垃圾收集器.ppt性能工程师指南:玩转OpenJDK HotSpot垃圾收集器.ppt性能工程师指南:玩转OpenJDK HotSpot垃圾收集器.ppt性能工程师指南:玩转OpenJDK HotSpot垃圾收集器.ppt性能...
《性能工程师指南:玩转OpenJDK HotSpot垃圾收集器》是一本专注于Java应用程序性能优化的专业书籍,尤其针对OpenJDK HotSpot虚拟机的垃圾收集器进行了深入探讨。该书共83页,旨在帮助性能工程师理解并优化Java应用的...
本文将对 JDK11 HotSpot 虚拟机垃圾收集调整指南进行详细解析,涵盖垃圾收集机制、垃圾收集器类型、垃圾收集调整参数等知识点。 垃圾收集机制 在 Java 应用程序中,垃圾收集机制是指虚拟机自动 回收无用对象的过程...
CMS(Concurrent Mark Sweep)垃圾收集器曾是Java HotSpot VM的主流选择,然而随着内存规模的扩大和对软实时性能需求的增长,G1(Garbage-First)垃圾收集器逐渐成为新的宠儿。G1的设计目标是实现软实时特性,即在可...
3. Concurrent Mark-and-Sweep(CMS)垃圾收集器:CMS垃圾收集器使用标记-清除算法,适合大型应用程序。 4. Garbage-First(G1)垃圾收集器:G1垃圾收集器是Java 7中引入的新型垃圾收集器,使用增量式标记-清除算法...
2. **类元数据(Class Metadata)**:垃圾收集器不仅要管理对象实例,还要管理类元数据。元数据的大小和管理方式也会影响性能。 选择合适的垃圾收集器取决于应用的特定需求,如是否需要低延迟、高吞吐量或是低内存...
文档接下来介绍J2SE 5.0 HotSpot JVM中的垃圾收集器,包括垃圾收集器的类型、快速分配、串行收集器、并行收集器、并行压缩收集器和并发标记-清除(CMS)收集器。此外,还探讨了自动选择收集器、堆大小和虚拟机的行为...
- 并发标记清除(CMS)收集器:试图在应用程序运行时并发地进行垃圾收集,以减少应用程序停顿时间。 4. 自适应选择和行为调优 文档还探讨了JVM如何自动选择垃圾收集器、堆大小和虚拟机配置。同时提供了基于行为的...
- Java HotSpot JVM 提供了多种垃圾收集器,如串行收集器、并行收集器、并发标记清除(CMS)收集器和G1(Garbage-First)收集器,每种都有其特定的设计目标和适用场景。 2. **并行收集器** (6 The Parallel ...
首先,我们要了解垃圾收集器的构建块。在OpenJDK 11中,Epsilon GC是一个极简的实现,仅负责内存分配,不进行回收。我们可以基于Epsilon GC来添加回收功能。 1. **内存分配**: - Epsilon GC的核心是对象的分配,...
【CMS(Concurrent Mark Sweep)】是Java垃圾收集器的一种,它是HotSpot虚拟机中用于老年代内存管理的并发标记清除算法。这个源码包"cms-java-源码.zip"显然是针对CMS垃圾收集器的Java实现进行的开源分享,旨在帮助...
5. **垃圾收集器**:Hotspot的垃圾收集器源代码展示了各种GC算法的实现,如CMS的并发标记清除过程,G1的 Region 分区和并行回收,以及ZGC的低暂停时间设计。 三、源代码学习的价值 1. **性能优化**:通过深入源...
* Concurrent Mark-and-Sweep (CMS) GC:CMS GC 是一种并发标记清除垃圾收集器,主要用于收集 old generation 中的对象。 垃圾收集参数 HotSpot 虚拟机中的垃圾收集参数可以通过命令行选项或 JVM 选项来设置。常见...
JDK 15 HotSpot 虚拟机垃圾收集调整指南 概述 本指南旨在帮助开发者和系统管理员了解 Java 平台标准版的 HotSpot 虚拟机垃圾收集机制,并提供调整指南以提高应用程序的性能。本指南涵盖了 HotSpot 虚拟机的垃圾...
4. **垃圾收集算法**:HotSpot支持多种垃圾收集器,如Serial、Parallel、CMS(Concurrent Mark Sweep)、G1(Garbage-First)和ZGC(Z Garbage Collector)。每种收集器有其特定的设计目标和适用场景,书里会对比...
4. **垃圾收集器类型**:HotSpot提供了多种GC策略,如Serial GC、Parallel GC、Parallel Old GC、CMS(Concurrent Mark Sweep)、G1(Garbage-First)和ZGC(Zing Concurrent Low Latency Collector)。每种收集器有...
《Java平台标准版HotSpot虚拟机垃圾收集调优指南》是针对Java HotSpot虚拟机(Java HotSpot VM)内建的垃圾收集算法的一份详细指南,旨在帮助开发者和系统管理员选择最适合他们应用需求的垃圾收集策略。这份文档适用...
Hotspot JVM提供了多种垃圾收集器,如Serial、Parallel、Concurrent Mark Sweep (CMS) 和Garbage First (G1)。这些收集器在内存管理和回收策略上各有特点,可以根据不同的应用场景进行选择。例如,G1收集器采用了...
Cache、Perf Data、Crash 分析方法、转储分析方法、 垃圾收集器的设计演进、CMS 和 G1 收集器、栈、JVM 对硬件寄存器的利用、栈顶缓存技术、解释器、字节 码表、转发表、Stubs、Code Cache、Code 生成器、JIT 编译器...