Java 21 计划砍掉分代式 Shenandoah GC


Java 21 预计于 2023 年 9 月 19 日正式发布,这是继 Java 17 之后的下一个 LTS 版本。截至 6 月 8 日,JDK 21 已进入 Rampdown 第一阶段;随着整个功能集被冻结,分代式 Shenandoah (Generational Shenandoah) 功能将被删除(从 16 个功能削减到 15 个),这是一种增强 Shenandoah 垃圾收集器 (GC) 的实验性功能。

根据介绍,分代式 Shenandoah 功能被移除的核心原因是缺乏准备。分代式 Shenandoah 的 JEP 作者 Roman Kennke 提议将其从 Java 21 中删除,以更好的评估准备情况。“Shenandoah 团队决定跳过 JDK 21 并花时间尽我们所能提供最好的 Generational Shenandoah。”

“我们要感谢所有花时间审查我们的拉取请求并提供反馈的人。鉴于在审查过程中发现的风险,以及没有足够的时间来执行如此大量的代码贡献所需的彻底审查,我们决定目前关闭此 PR。我们将寻求以 JDK 22 为目标。”

分代式 Shenandoah 将通过实验性的分代收集功能来增强 Shenandoah,以提高可持续吞吐量、负载峰值弹性和内存利用率。该计划旨在不会破坏 non-generational Shenandoah 的情况下,提供实验性的分代模式,以在未来版本中使其成为默认模式。其他目标包括在不牺牲低 GC pauses 的情况下减少持续内存占用、减少 CPU 和功耗、保持高吞吐量,以及降低在分配峰值期间导致退化和完整集合的风险。而 Non-generational Shenandoah 不会被取代。

移除建议的审查期截至 6 月 14 日,如果没有太大异议的话,该 JEP 将正式从 JDK 21 中删除。此决策只与支持 Shenandoah GC 的 OpenJDK 版本用户有关;不会影响 G1 GC、Z Garbage Collector(ZGC)或其他现代垃圾收集器。也不影响使用 G1 GC 和 ZGC 的 Java 发行版,如 Oracle OpenJDK 和 Oracle JDK。

JDK 21 的初始候选版本将于 8 月发布,第二个候选版本将于 8 月下旬发布。


相關推薦

2023-06-10

制 API Key Encapsulation Mechanism API 、Z 垃圾收集器的分代行为 Generational ZGC 、序列化集合 Sequenced Collections  ,以及努力简化 Hello World 写法的 JEP 445 ...(关于 JEP 445 的详情可查看该文章:JAVA 新提案:

2023-11-04

拟机可以轻松生成有效的代码来访问其字段,而不会像 JavaScript 等动态语言那样存在去优化的风险。 因此,该提案通过结构和数组堆类型为 WebAssembly 增加了对高级托管语言的有效支持,使得针对 Wasm 的语言编译器能够与主机 VM

2023-04-30

率。其他在 Java 8 之后出现的实验性垃圾收集器(ZGC 和 Shenandoah)在生产系统中的使用仍然很少。两者都有生产就绪版本,但在一般处理中仍然可以忽略不计。 更多详情可查看完整报告。 

2022-07-28

。 GraalVM 是一个高性能的 JDK 发行版。它旨在加速用 Java 和其他 JVM 语言编写的应用程序的执行,同时还为 JavaScript、Python、基于 LLVM 的语言(如 C 和 C++)以及许多其他流行编程语言提供运行时。此外,GraalVM 为编程语言之间

2023-07-08

装选项代替。 根据 Ubuntu 桌面工程总监 Tim 的说法,他们计划引入新的安装选项——统一默认安装(unified default install),来取代现有的安装选项。据称统一默认安装能够让用户在安装期间选择要安装/添加的应用程序。 他表示,

2023-09-12

AnnotationFormatError(2.13.11 回归)( scala/bug#12799 ) 计划将在 Scala 2.13.12 中解决这些问题。 详情可查看更新说明:https://github.com/scala/scala/releases/tag/v2.13.11

2023-12-28

证处理方面的问题; 修复了往性能统计中输出查询执行计划时的空指针问题; 修复了SQL相关的指标处理(基于Calcite的SQL引擎新增了解析方面的指标,修复了执行方面的指标); 修复了当缓存大小超过Integer.MAX_VALUE时查询计

2022-04-29

。 这两个新功能一个是我们之前介绍过的 Topics API(原计划第一季度末上线),另一个则是 FLEDGE(First "Locally-Executed Decision over Groups" Experiment),它们两个都是 Google 为了保护用户隐私而推出的广告分析机制。 为了避免用户

2023-08-25

。在其余受访者中,21% 的人不确定自己的想法,13% 的人计划开始研究这一问题。就平台而言,LinkedIn 上的投票者更倾向于认为 Java 将迎头赶上,而不太可能计划进行额外的研究。 调查得出了以下几个结论: 调查显示,相

2023-12-01

项目设置,而不是传统的 XML。 Gradle 现在支持在 Java 21 上运行。此版本对 Kotlin DSL 进行了改进,包括更快的 first use 以及预编译 Kotlin 脚本插件中的版本目录支持。此外还提供了更多有用的错误和告警消息、改进

2023-06-06

是由个人开发者在业余时间维护,暂无提供商业化服务的计划。 出于项目的可持续发展需要,我们在 smart-mqtt 社区版的基础上,丰富了一些企业级功能。如果贵公司认可 smart-mqtt 的价值,可以通过成为赞助商获得企业版授权。

2023-01-17

James Gosling,加拿大计算机科学家,完成了 Java 的原始设计,并实现了 Java 最初版本的编译器和虚拟机,也是公认的 “Java 之父”。 Gosling 现在是 AWS 的工程师,在 12 月初的 reClojure 2022 线上会议中发表了主题演讲。他分

2023-03-22

支持。尽管如此,但它仍然可用于生产环境中。根据开发计划,下一个 LTS 版本就是将于 2023 年 9 月发布的 JDK 21。 此版本包括 7 个 JEP(都处于不同的孵化和预览阶段),以及数百个较小的功能增强和数千个错误修复:

2023-04-29

加作业导致 尾毛刺 问题 4.8.8.3 ⏱️2023.04.21 #I6XIV8 [调整] 定时任务日志设计,减少不必要的日志输出 4.8.8.3 ⏱️2023.04.21 #I6XI2L 文档 [新增] Jwt 身份验证过程监听文档 [新增] 事件总