写点什么

Oracle 提议将 G1 作为 Java 9 的默认垃圾收集器

2015 年 6 月 16 日

Oracle 正在考虑将 JEP 248 包含到 Java 9 的 JEP 列表中,即在服务器配置中将 G1 作为默认垃圾收集器。该决定在 Java 社区引发了一些争论,许多人都认为并发标记和扫描(CMS)收集器可能更合适。

如果该决定付诸实施,那么 G1 将取代并行垃圾收集器成为服务器配置的默认选项。正如 Oracle 在内存管理白皮书中描述的那样,并行垃圾收集器的设计初衷是,通过不常发生(但可能时间比较长)的 Stop-The-World(STW)中断最大化应用程序吞吐量。并行垃圾收集器将消耗的总计算时间最小化,长远来看,其破坏性更小,因此可以提供更好的整体性能。该收集器非常适合对响应时间要求不高的应用程序,比如,批处理。

另一方面,正如前 G1 性能负责人 Monica Beckwith先前在 InfoQ 上阐述的那样,Garbage First(G1)的设计初衷是,以更高的计算成本为代价最小化 STW 中断时间。G1 更适合于低延迟应用程序,如 Web 服务器,这也体现了 Stefan Johansson 在 JEP 中所描述的动机:

通常来说,限制 GC 中断时间比最大化吞吐量更重要。对大部分用户而言,与面向吞吐量的收集器相比(如并行垃圾收集器),切换到中断时间短的垃圾收集器(如 G1),可以获得更好的整体体验。

这里出现了争议。HotSpot 因为同样的目的引入了 CMS,而实际上,按照 Oracle 的描述,CMS“设计用于更希望缩短垃圾收集中断时间的应用程序,以及在运行时可以与垃圾收集器共享处理器资源的应用程序”。许多公开的基准测试都表明,在内存占用相对较小的应用程序中,CMS 的性能往往要胜过 G1,这与 Oracle 对 G1 的描述一致,即 G1 适用于堆大小为 6GB 及以上的服务器应用程序。

在最近的一次交流中,性能专家 Kirk Pepperdine 特别指出,谷歌已经向 CMS 贡献了若干改进,但它们从没有出现在 HotSpot 中。他还补充说,虽然长远看 G1 可能是更好的选择,但 Oracle 的设计方案已经剥夺了社区从 CMS 获得更好体验的权力。

查看英文原文: Oracle Proposes G1 as the Default Garbage Collector for Java 9

2015 年 6 月 16 日 22:178655
用户头像

发布了 1008 篇内容, 共 313.5 次阅读, 收获喜欢 282 次。

关注

评论

发布
暂无评论
发现更多内容

一个员工的离职成本,很恐怖!

不脱发的程序猿

职场 HR 28天写作 二月春节不断更 员工离职

架构设计篇之微服务实战笔记(五)

小诚信驿站

架构师 刘晓成 小诚信驿站 成长笔记 28天写作

MT马特量化机器人软件开发|MT马特量化机器人APP系统开发

开發I852946OIIO

系统开发

大数据时代

Mr.cool

细节完美炸裂!GtiHub上点赞已破百万的并发编程四套全彩手册

Java架构追梦

Java 阿里巴巴 架构 面试 并发

中小公司开展NPS的好处

Geek_459987

拒绝知识碎片化!阿里大牛亲码Java核心技能精讲笔记,系统梳理Java知识体系,金三银四面试必备!

程序员小毕

Java 程序员 架构 面试 分布式

Kafka 是怎么存储的?为什么速度那么快?

码农架构

Java kafka 架构·

抖音春晚红包互动为啥全程无宕机?看完字节内部高并发速成笔记我悟了!

程序员小毕

Java 程序员 高并发 秒杀 字节

为什么挤破头进大厂,大厂如何设置薪资职级体系?

不脱发的程序猿

HR 校园招聘 28天写作 二月春节不断更 互联网行业薪资

面面俱到!阿里SpringBoot全栈宝典新开源,Spring技术入门进阶提升必备!

Java王路飞

Java spring 程序员 面试 springboot

一周信创舆情观察(2.8~2.21)

统小信uos

Flink 如何实时分析 Iceberg 数据湖的 CDC 数据

Apache Flink

flink

网络编程入门从未如此简单(二):假如你来设计TCP协议,会怎么做?

JackJiang

TCP 网络编程

Open-Falcon 中的交换机监控

冯骐

go 运维 监控 网络 交换机

深入理解Deno是如何借助PowerShell进行安装脚本

梁龙先森

前端 deno shell脚本编写 PowerShell 28天写作

C语言重要的知识点

c 考核 重要知识 简单清楚 好看

API策略量化机器人系统开发|API策略量化机器人APP软件开发

开發I852946OIIO

系统开发

使用PG_STAT_REPLICATION监视复制

PostgreSQLChina

数据库 postgresql 开源 软件 开源社区

火山版强势来袭!字节21版Java程序员面试涨薪手册现已开源

周老师

Java 编程 程序员 架构 面试

安卓软件开发文献!阿里P8架构师的Android大厂面试题总结,建议收藏

欢喜学安卓

android 程序员 面试 移动开发

资深大牛带你了解源码!分析Android未来几年的发展前景,快来收藏!

欢喜学安卓

android 程序员 面试 移动开发

Serverless 如何在阿里巴巴实现规模化落地?

Serverless Devs

阿里云 Serverless 云原生 前端

iOS开发前景

ios

【LeetCode】翻转图像Java题解

HQ数字卡

算法 LeetCode 28天写作 2月春节不断更

2021年,是时候把技术债务管理提上日程了

禅道项目管理

效率 产品 创新 技术债

MySQL索引原理,一篇从头到尾讲清楚

云流

数据库 架构

园区网为主的 DNS 架构设计

冯骐

程序员 运维 监控 网络 DNS

立足智能化发展,风电能源产业互联网平台加快建设

一只数据鲸鱼

物联网 数据可视化 3D可视化 能源管理 风力发电

新时代计算机技术

第五周作业-流程图及时序图

Au revoir

4月17日 HarmonyOS 开发者日·上海站

4月17日 HarmonyOS 开发者日·上海站

Oracle提议将G1作为Java 9的默认垃圾收集器-InfoQ