写点什么

Project Leyden 早期访问版本开放下载:Java 程序启动速度提升 2 至 3 倍

  • 2024-07-26
    北京
  • 本文字数:1403 字

    阅读完需:约 5 分钟

Project Leyden 早期访问版本开放下载:Java 程序启动速度提升 2 至 3 倍

OpenJDK 迎来一个重要的里程碑,宣布 Project Leyden 早期访问(EA)构建版本已开放下载。这一版本凝聚了一年多的精心开发,旨在提高 Java 应用程序的性能,特别是缩短启动时间。初步的测试结果令人振奋,一些流行的应用程序框架在启动速度上实现了 2 至 3 倍的提升。


Leyden EA 构建带来了一些创新特性,通过将工作负载从运行时转移到早期实验执行阶段,即所谓的训练执行,来优化 Java 应用程序。在训练执行期间,系统会根据应用程序的行为预计算各种信息,包括将字节码预先编译为本地代码。


统一缓存数据存储(Unified Cache Data Store,CDS)归档作为其他特性的基础,使得 CDS 能够存储类元数据、堆对象、分析数据和编译代码。用户可以通过使用 -XX:CacheDataStore 标志来访问,简化了 CDS 归档的创建和测试过程。


CDS 归档中已加载的类特性(通过 -XX:+PreloadSharedClasses 标志来启用)允许类在应用程序启动时立即预加载成已加载状态。这有助于实现各种时间转移优化,使启动过程更快。


CDS 归档中的方法分析特性将训练执行中的方法分析存储在 CDS 归档中,为即时编译器(JIT)在热身阶段更早开始编译提供了依据。这使得 Java 应用程序能够更快地达到峰值性能。这个特性可以通过 -XX:+RecordTraining 和 -XX:+ReplayTraining 标志来启用。


提前编译(AOT)解析常量池特性会在训练执行期间解析许多常量池条目,这一动作将显著提高启动速度,并使 AOT 编译器能够更好地生成代码。这个特性可以通过 -XX:+ArchiveFieldReferences、-XX:+ArchiveMethodReferences 和 -XX:+ArchiveInvokeDynamic 等标志来启用。


Java 方法的 AOT 编译特性会在训练执行期间识别被频繁调用的方法,并编译它们,将它们与 CDS 归档存储在一起。这样,应用程序在启动时就可以立即以本地代码的形式执行。这个特性可以通过 -XX:+StoreCachedCode, -XX:+LoadCachedCode, 和 -XX:CachedCodeFile 标志进行管理。


AOT 生成动态代理和反射数据特性通过提前生成动态代理和反射数据来缩短启动时间,流行的应用程序框架通常会使用这些数据。这个特性可以通过 -XX:+ArchiveDynamicProxies 和 -XX:+ArchiveReflectionData 标志来启用。


类加载器查找缓存特性通过缓存来加速应用程序框架中常见的重复类查找。这个特性可以通过 -XX:+ArchiveLoaderLookupCache 标志来启用。


要体验 Leyden 的新特性,开发者可以运行 Leyden EA 版本中的 java 程序,并开启 -XX:CacheDataStore 标志。


Leyden EA 构建版本显著提升了 Java 应用程序的优化水平,尤其是在启动时间方面。开发者们可以预期,诸如 AOT 编译、统一 CDS 归档以及存档方法分析等功能将带来显著的性能飞跃。社区的持续参与对于这些特性的完善至关重要,他们将确保这些功能能够成功融入未来的 Java 版本中。


社区的持续反馈对于进一步改进 Leyden EA 构建至关重要,开发者可以积极体验 Leyden EA 构建版本,并向 leyden-dev@openjdk.org 发送电子邮件分享使用体验。


对于希望探索 Leyden 特性并深入了解项目开发详情的开发者,可以参考发布说明 ,获取详细信息和使用 Leyden EA 构建的说明。


Java 开发人员可以通过持续关注设计笔记、演讲和官方代码库等资源,充分利用这些优化措施来提高他们应用程序的性能和效率。正如 InfoQ 先前报道的那样,Project Leyden 一直在应对各种挑战,包括提前编译的延迟问题,而这次发布旨在解决这些问题。


原文链接:

https://www.infoq.com/news/2024/07/project-leyden-ea-release/

2024-07-26 09:427552

评论

发布
暂无评论

使用 TypeScript 从零搭建自己的 Web 框架:领域特定语言(DSL) 与 Prisma 模型

RoyLin

typescript

一本书精通推荐算法,轻松搞定入门、面试、进阶

博文视点Broadview

iPaaS与ESB: 解密企业集成领域的两大利器差异

RestCloud

数字化转型 ESB API 企业集成 ipaas

海外云手机为什么适合社媒运营?

Ogcloud

云手机 海外云手机 tiktok云手机 云手机海外版 电商云手机

鸿蒙HarmonyOS实战-ArkUI组件(Flex)

蜀道山

鸿蒙 HarmonyOS Flex 鸿蒙开发 鸿蒙系统

一文读懂BTC生态新贵Giants Planet,将L2与现实世界整合

西柚子

搞垮一家SaaS公司最快的方法

ToB行业头条

东周APP:投资新兴实业资产,助力实体经济高质量发展

Geek_2d6073

Kafka 迁移工具 MirrorMaker2 原理起底

AutoMQ

大数据 kafka 云原生 AutoMQ MirrorMaker2

快应用与小程序:分别为“轻应用”市场

Geek_2305a8

Spring开发:动态代理的艺术与实践

华为云开发者联盟

spring 开发 华为云 华为云开发者联盟 企业号2024年4月PK榜

鸿蒙HarmonyOS实战-ArkUI组件(Stack)

蜀道山

鸿蒙 HarmonyOS stack 鸿蒙开发 鸿蒙系统

用海外云手机高效率运营TikTok!

Ogcloud

云手机 海外云手机 tiktok云手机 云手机海外版 跨境云手机

大模型时代,嫘祖也掌握了「新质生产力」!

白洞计划

AI

基于afx透明视频的视觉增强前端方案

百度Geek说

开发效率 企业号 4 月 PK 榜 前端动效 透明视频 视觉增强

掌握 HTTP:网络通信的核心技术详解

Liam

程序员 前端 Web 后端 HTTP

一文读懂BTC生态新贵Giants Planet,将L2与现实世界整合

大瞿科技

为什么Toncoin是加密货币开发的下一个重大事件

区块链软件开发推广运营

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

一文读懂BTC生态新贵Giants Planet,将L2与现实世界整合

加密眼界

如何在面试中应对编程与算法面试?

霍格沃兹测试开发学社

如何实现小程序与App的跳转?

Geek_2305a8

多元 CPU 性能调优的技术挑战、产品设计和业务实践

Baidu AICLOUD

性能调优 cpu加速 btune

Penpad生态再迎新进展,Season 2 ETH质押量超200万美元

西柚子

拿到鹅厂的Offer啦!

王磊

Java 面试

软件测试学习笔记丨Jenkins api接口

测试人

软件测试 jenkins API 测试开发

华为云CodeArts IDE For Python 快速使用指南

华为云PaaS服务小智

华为云

软件测试学习笔记丨后端接口基本开发 - Spring boot项目搭建

测试人

软件测试 测试开发 spring-boot

第47期 | GPTSecurity周报

云起无垠

和鲸科技将参与第五届空间数据智能学术会议并于应急减灾与可持续发展专题论坛做报告分享

ModelWhale

人工智能 大数据 空间数据库 空间数据智能学术会议

浪潮信息持续更新“源2.0”基础大模型能力

财见

Project Leyden 早期访问版本开放下载:Java 程序启动速度提升 2 至 3 倍_编程语言_A N M Bazlur Rahman_InfoQ精选文章