写点什么

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

  • 2015-06-16
  • 本文字数:810 字

    阅读完需:约 3 分钟

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-06-16 22:179499
用户头像

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

关注

评论

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

淘宝Native研发模式的演进与思考 | DX研发模式

阿里巴巴终端技术

ide 技术选型 native 客户端 动态化

TICS端到端实践:企业积分查询作业开发

华为云开发者联盟

云计算 华为云 安全计算

详解大集群通信建模理论公式

华为云开发者联盟

数据库 华为云 查询

天翼云践行“双碳”目标 “东数西算”绘画绿色发展新蓝图

天翼云开发者社区

百度发布首个数字人度晓晓挑战高考作文

开源直播系统源码

高考 百度AI 度晓晓 百度数字人

作为软件工程师,给年轻时的自己的建议(下)

禅道项目管理

工程师 程序员进阶 程序员‘

MASA Auth - 从用户的角度看整体设计

MASA技术团队

一文读懂天翼云自研TeleDB 数据库五大关键特性

天翼云开发者社区

昇腾AI的蝴蝶效应,从智能制造开始

脑极体

为什么我们总是说不清「需求是什么」

LigaAI

产品经理 需求 需求分析 产品设计与思考

OKALEIDO的NFT聚合交易,打造面向艺术家的Web3商业生态

股市老人

天翼云对象存储ZOS高可用的关键技术揭秘

天翼云开发者社区

四川21市州国家反诈中心APP覆盖情况,筑牢全民反诈“防护墙”

易观分析

反诈APP

Streaming Data Warehouse 存储:需求与架构

Apache Flink

大数据 flink 编程 流计算 实时计算

手把手教你实战开发黑白棋实时对战游戏

华为云开发者联盟

云计算 软件开发 游戏开发 华为云

中国企业数字化转型的十大趋势

小炮

知识图谱看高考,高考加油!高考学子金榜题名

清林情报分析师

数据分析 数据可视化 高考 知识图谱

使用APICloud AVM多端框架开发课程表功能

YonBuilder低代码开发平台

前端开发 APP开发 APICloud 多端开发 AVM

为什么越来越多的开发者放弃使用Postman,而选择Apifox

Liam

前端 后端 Postman swagger API文档

Flink ML API,为实时机器学习设计的算法接口与迭代引擎

Apache Flink

大数据 flink 编程 流计算 实时计算

Yarn的RM功能介绍

五分钟学大数据

6月月更

flutter系列之:构建Widget的上下文环境BuildContext详解

程序那些事

flutter 程序那些事 6月月更

Go语言创造者回顾:是什么让GoLang如此受欢迎?

三石

go语言

做多线程并发扩展,这两点你需要关注

华为云开发者联盟

spring 多线程 高并发 开发 华为云

SoFlu 软件机器人:辅助企业落地 DevOps 的自动化工具

飞算JavaAI开发助手

千万级高并发下看天翼云如何为“健康码”突破技术瓶颈

天翼云开发者社区

小游戏开发是进行网游的必需环节,你知道吗?

开源直播系统源码

软件开发 小游戏开发 直播系统 app源码

如何删除 git 仓库中的 .idea 文件?

程序员小航

git IDEA

见微知著,细节上雕花:SVG生成矢量格式网站图标(Favicon)探究

刘悦的技术博客

前端 favicon SVG svg图 Icon Font

全网对OSPF最言简意赅的归纳!强烈建议收藏!

wljslmz

OSPF 网络工程师 动态路由 6月月更 路由协议

Oracle提议将G1作为Java 9的默认垃圾收集器_Java_Abraham Marín Pérez_InfoQ精选文章