写点什么

JEP423:G1 引入区域固定机制,降低 GC 延迟

  • 2024-01-05
    北京
  • 本文字数:855 字

    阅读完需:约 3 分钟

大小:442.91K时长:02:31
JEP423:G1引入区域固定机制,降低GC延迟

在评审结束后,JEP 423(Region Pinning for G1)已经被集成到 JDK 22 中。这个 JEP 旨在通过为G1垃圾回收器实现区域固定来降低 GC 延迟。这使得在 Major GC 和 Minor GC 期间可以固定任意区域,并且可以避免在实现 JNI 关键区域时禁用垃圾回收。


JEP 423 解决了 Java 与 C 和 C++等非托管语言之间的互操作性问题。JNI,作为互操作性的关键组件,允许 Java 应用程序调用其他语言编写的原生应用程序和库,或反过来。它提供了获取和释放Java对象指针的函数,这些函数必须成对使用。在获取和释放指针之间执行的代码被视为关键区域,在此期间,JVM 必须确保 GC 不移动关联的 Java 对象。默认的 GC,即 G1,在这些关键区域中会完全禁用垃圾回收,导致严重的延迟。这种方法通常会导致线程停滞、不必要的内存耗尽,甚至在极端情况下会导致 VM 过早关闭。


G1 引入区域固定从根本上改变了这种方式。JEP 423 允许 G1 在 GC 期间固定包含关键对象的特定内存区域,而不是禁用GC。这是通过在每个区域中维护关键对象的计数来实现的,在获取关键对象时增加计数,在释放时减少。当计数非零时,该区域被视为被固定,不会在 GC 期间被清理。这确保了关键对象不会被移动,避免了禁用 GC,并显著降低了延迟。


这个新特性是 Java 垃圾回收机制的一项重大进步。它旨在解决延迟问题,并在没有活动的 JNI 关键区域存在时保证 GC 停顿时间不出现回归。即使存在这样的区域,回归也是最小的。在 Major GC 和 Minor GC 期间实现区域固定证明了这种解决方案的健壮性。


不过,JEP 423 也存在潜在的风险和假设。一个重大风险是,如果应用程序同时固定多个区域,可能会导致堆内存耗尽。虽然目前没有直接解决方案,但从已经实现了类似机制的Shenandoah GC 来看,这种风险是可控的。


总的来说,JEP 423 为 OpenJDK 的 G1 垃圾回收器引入了重大的技术增强。区域固定特性解决了与 Java 本地接口(JNI)关键区域相关的延迟问题,改进了 JVM 在与非托管语言发生互操作时的垃圾回收处理。这表明了 OpenJDK 在努力完善和优化 Java 性能和互操作性能力方面所做的持续不断的努力。


原文链接

https://www.infoq.com/news/2023/12/region-pinning-to-g1-gc/

2024-01-05 08:005644

评论 1 条评论

发布
用户头像
这是机器翻译吗?
2024-01-05 14:42 · 湖北
回复
没有更多了
发现更多内容

机器学习视觉处理技术:UI自动化测试的未来发展方向

测吧(北京)科技有限公司

测试

为什么 ERC-20 代币钱包的开发会改变代币化经济的游戏规则?

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

长查询问题,TDengine 终于攻克了!

TDengine

tdengine 时序数据库

"使用PAI实现涂鸦变大作"AIGC活动重磅来袭!

阿里云大数据AI技术

AIGC

详细的Java学习指南,java高级面试题库

程序猿忙什么

从视觉识别到动作推荐:UI自动化测试的完整技术链条剖析

测吧(北京)科技有限公司

测试

淘系API接口推荐:淘宝商品描述信息数据接口

tbapi

淘宝API接口 淘宝商品描述接口

GaussDB(DWS)运维利刃:TopSQL工具解析

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 华为云GaussDB(DWS)

亚马逊云科技在中国区域推出Amazon Network Firewall

财见

云手机实现全方位的海外舆情监测

Ogcloud

云计算 云手机 海外云手机 云手机海外版 舆情监测

谷歌SEO优化技巧:外贸独立站关键词的筛选与挖掘

九凌网络

做市机器人招代理

区块链技术

ENNOVI推出ENNOVI-CellConnect-Prism

财见

俄罗斯淘宝代购系统丨淘宝代购集运系统PHP

tbapi

淘宝代购系统 淘宝代购集运系统 俄罗斯淘宝代购系统

服务化UI页面结构树解析:优化UI自动化测试的实践探索

测吧(北京)科技有限公司

测试

利用技术提升UI自动化测试的准确性

测吧(北京)科技有限公司

测试

中文Navicat Premium 15 for mac破解安装包

iMac小白

全球IT外包的趋势与发展

Ogcloud

外包 IT IT外包 IT外包公司 IT外包服务

如何优化UI自动化测试流程?

测吧(北京)科技有限公司

测试

IT外包怎样帮助企业控制成本?

Ogcloud

IT IT外包 IT外包公司 IT外包服务 IT外包企业

已解决com.orbotix.common.DiscoveryException服务发现异常的正确解决方法,亲测有效!!!

小明Java问道之路

数字先锋| 望闻问切更有“数”!

天翼云开发者社区

云计算 云平台

提高测试覆盖率:基于深度学习的新视角分析方法

测吧(北京)科技有限公司

测试

为什么要对数据库优化

小魏写代码

软件测试学习笔记丨性能测试工具JMeter 基本使用

测试人

软件测试 测试开发

UI自动化测试技术的突破与挑战

测吧(北京)科技有限公司

测试

PDF增强插件enfocus pitstop pro for mac中文破解版

iMac小白

谷歌SEO外链怎么做:初学者入门指南

九凌网络

重磅!云智慧推出轻量智能化服务管理平台轻帆云

云智慧AIOps社区

ITSM ITSM软件 ITSM解决方案 工单管理系统 工单管理

⏳大咖直播预告 | 数据库系统访问控制『面面观』

KaiwuDB

数据库

软件测试学习笔记丨闭包与装饰器

测试人

软件测试

JEP423:G1引入区域固定机制,降低GC延迟_编程语言_A N M Bazlur Rahman_InfoQ精选文章