2025上半年,最新 AI实践都在这!20+ 应用案例,任听一场议题就值回票价 了解详情
写点什么

JEP 474:分代式现已成为 Java 中 ZGC 的标准

  • 2024-07-04
    北京
  • 本文字数:805 字

    阅读完需:约 3 分钟

大小:420.02K时长:02:23
JEP 474:分代式现已成为 Java 中 ZGC 的标准

JEP 474(ZGC:默认分代式)以 JDK 23 为目标。该 JEP 建议将 Z 垃圾收集器(ZGC)的默认使用模式从非分代式改为分代式。非分代式将被弃用,并在未来的 JDK 版本中删除。这将彻底降低维护这两种模式的成本,让未来的开发工作可以集中在 JEP 439(分代式 ZGC)上。


JEP 474 中最主要的变化大概就是将 ZGenerational 选项的默认值从 false 改为 true,明确表明了 Java 的内存管理方式发生了战略性变化,尤其是在为 Java 应用程序提供更多“空闲”内存和更低的 GC 开销的基础上优化了垃圾回收。


将默认选项过渡到分代式是希望能借此减少同时支持分代式和非分代式的维护工作,从而允许 OpenJDK 团队会将分代式 ZGC 变得更为高效且有效,以应对外界对现代 Java 应用程序的期望。开发者需注意,非分代模式虽仍可用但已被弃用,因此在通过命令行选项明确启用非分代式时会出现警告。非分代式被弃用的事实意味着它在未来将会被移除。


下面这些常用命令行参数:

  • -XX:+UseZGC:现默认使用分代式 ZGC

  • -XX:+UseZGC -XX:+ZGenerational:同样是使用分代式 ZGC 但对 ZGenerational 标志发出弃用警告。

  • -XX:+UseZGC -XX:-ZGenerational:使用非分代式 ZGC,但对 ZGenerational 标志发出弃用警告,并提示非分代式已被弃用且将被移除。


开发者需对自己的应用程序进行测试,以确保其在新默认设置下的兼容性和性能。如果应用程序与 JVM 有紧密集成,且对垃圾回收非常敏感,那么其性能可能会发生变化。


OpenJDK 的测试承诺中包括确保现有配置和基准在新默认设置下的性能符合预期。对多数应用程序来说风险较低,但部分高性能或低延迟应用程序可能会需要对配置进行调整。


JEP 474 标志着 Java 持续发展过程中的一次关键更新,意图简化并改进垃圾回收的过程,并重点关注分代式技术。此次更新需要开发者重新评估其应用程序的兼容性和性能,但从长远来看,这次 JEP 有望能更高效地管理 Java 应用程序。


原文链接

JEP 474: Generational Mode Now Standard for ZGC in Java

2024-07-04 08:004689

评论

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

[教你做小游戏] 滑动选中!PC端+移动端适配!完美用户体验!斗地主手牌交互示范

HullQin

CSS JavaScript html 前端 9月月更

Java进阶(四)Java反射TypeToken解决泛型运行时类型擦除问题

No Silver Bullet

Java 反射 9月月更 typeToken

自动化测试如何管理测试数据

老张

自动化测试

YAML管理Kubernetes应用

CTO技术共享

查看k8s的etcd数据

程序员欣宸

Kubernetes 9月月更

真的破防了!在华为主题熄屏显示找到我的第一台Mate

最新动态

Java进阶(五)Junit测试

No Silver Bullet

JUnit 测试 单元测试 9月月更

库调多了,都忘了最基础的概念-《方法篇》

知识浅谈

9月月更

一款开源的电商框架介绍:Spartacus

汪子熙

typescript angular SAP Spartacus 9月月更

计算机网络的组成

StackOverflow

编程 计算机网络 9月月更

浅述AIOps与DevOps的区别在哪里

穿过生命散发芬芳

DevOps AIOPS 9月月更

LeetCode-35. 搜索插入位置(java)

bug菌

9月日更 Leet Code 9月月更

leetcode 148. Sort List 排序链表(中等)

okokabcd

LeetCode 算法与数据结构

使用 VUE 和 Go 触摸 WebAssembly

devpoint

Go Vue webassembly 9月月更

云原生的学习心得

Geek_e8bfe4

LeetCode-53. 最大子数组和(java)

bug菌

9月日更 Leet Code 9月月更

云资源管理概述

阿泽🧸

云资源 9月月更

致敬经典!这款华为主题能让你的手机秒变“历代Mate”

最新动态

Containerd ctr、crictl、nerdctl 实战

CTO技术共享

生产环境中使用 Linkerd

CTO技术共享

信息安全之我见(45/100)

hackstoic

信息安全

你猜 1 行Python代码能干什么呢?神奇的单行 Python 代码

梦想橡皮擦

Python Python. 9月月更

2022-09-04:以下go语言代码输出什么?A:不能编译;B:45;C:45.2;D:45.0。 package main import ( “fmt“ ) func main() {

福大大架构师每日一题

golang 福大大 选择题

云原生(三十六) | Kubernetes篇之Harbor入门和安装

Lansonli

云原生 9月月更

随机生成也是需要有效控制的

zxhtom

9月月更

「趣学前端」SVG,边学边做

叶一一

JavaScript 前端 9月月更

你真的理解C语言中的 “ 数组 ” 吗?(初阶篇)

Albert Edison

数组 C语言 开发语言 二维数组 9月月更

【CSS】 position : static | absolute | relative | fixed | sticky

翼同学

CSS 前端 9月月更

神级编程网站,堪称程序员的充电站,我给你找好了不能错过

C语言与CPP编程

编程 程序员 网站 计算机 编程语言‘

深入学习SAP UI5框架代码系列之二:UI5 Module的懒加载机制

汪子熙

JavaScript 前端框架 SAP ui5 9月月更

JEP 474:分代式现已成为 Java 中 ZGC 的标准_编程语言_A N M Bazlur Rahman_InfoQ精选文章