Java 类数据共享升级将缩短启动时间

改进 Java 程序启动时间和性能的努力包括改进对 CDS(类数据共享)中归档 Java 堆对象的支持。

该计划由 Oracle 的 Ioi Lam 上个月在 OpenJDK 社区 RFC 中公开,与 Project Leyden 保持一致,旨在改善 Java 应用程序的启动时间以及达到峰值性能和程序足迹的时间。 Lam 指出,Project Leyden 可能会广泛使用存档的 Java 堆对象。

CDS 改进计划的目标包括统一支持所有收集器的 CDS 以及最小化每个收集器支持 CDS 所需的代码。 CDS 本身旨在减少应用程序启动时间,特别是对于较小的应用程序。 仅 Java HotSpot 客户端 VM 和串行垃圾收集器支持 CDS。

CDS 改进计划要求:

    删除 G1 垃圾收集器依赖性以写入归档堆; 已经开发了一个工作原型。 将归档堆合并为一个连续的块。 目的是使将归档堆映射(内存映射)到不同的收集器变得容易。 删除 G1 存档区域类型也计划作为此步骤的一部分。 为其他收集器实施归档区域的 mmap。 预计实施将相当简单。

从 Java Development Kit (JDK) 20 开始,该计划将于 3 月作为生产版本发布,该计划的实施者必须处理限制,包括 CDS 存档转储仅由 G1 收集器支持,G1 具有特殊的空间分配例程堆和 mmap 仅在 G1 中受支持。

为 CDS 提议提供动力的是一个 Java 开发计划,该计划为使用归档区域提供统一的 API。 该提案于去年 11 月启动。

阅读更多

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注