Oracle 正式启动 “Leyden” 项目!在 Java 平台引入“静态映像”以解决运行缓慢等问题

简介: Oracle 正式启动 “Leyden” 项目!在 Java 平台引入“静态映像”以解决运行缓慢等问题

近日,Oracle Java 平台组首席架构师 Mark Reinhold 在社交媒体发文正式宣布启动 “Leyden”项目。据悉,该项目已获得批准,将通过在 Java 平台上引入“静态映像”来缓解启动和性能缓慢的问题,旨在加速 Java 业务的创建。

image.png

据了解,“Leyden”项目计划最早于 2020 年 5 月份左右提出,至今已经被讨论了 2 年多。

当时,Mark Reinhold 在一份 Java 邮件列表中发表了一篇关于他提议和领导的工作的帖子,他表示“这项工作被称为“Leyden”项目,将通过在 Java 平台和 Java 开发工具包(JDK)中引入“静态映像”的概念来解决这些痛点。

Leyden 项目引入“静态映像”

“Leyden”项目里引入的所谓的“静态映像”,是一款独立于应用程序的程序,它派生自一个运行该应用程序的应用程序,而非其他应用程序。

静态映像相对于它可以加载的类来说是一个“封闭的世界”:在运行时,不能从映像外部加载类,也不能动态创建类。封闭世界的约束严格限制了 Java 的自然动态性,特别是在运行时反射和加载类的功能方面,许多现有的 Java 框架和库都依赖这些功能。

以上两个约束不仅可以减少图像的大小及其启动时间,同时这些约束还“允许进行积极的提前编译(Ahead-of-time compilation),从而缩短图像达到峰值性能的时间,提前编译是将高级编程语言(如 C 或 C++)编译成本机机器代码,以便生成的二进制文件可以本机执行的行为。

Leyden 项目将加速 Java 的优化工作

据介绍,Leyden 是一个基于过去项目基础上新建立的项目,包括 GNU 编译器 for Java 和 GraalVM 的本机映像功能。GraalVM 是一种高性能运行时,针对各种语言(如 Java 和 JVM 语言、JavaScript、Ruby、Python 等)进行了性能优化,并针对多语言或多语言应用程序实现了互操作性。

image.png

由于 Leyden 项目的灵感来自 GraalVM,这两个项目有着共同的组成部分,它们可能会(也可能不会)进入主流 Java 规范。然而,由于目前缺乏进一步的信息,一些观察家认为这两个项目是交织在一起的。

早在 2020 年 Leyden 项目刚提出的时候,Longmeado Omdia 分析师 Bradley Shimmin 就评价称:“Leyden 项目似乎应该成为 GraalVM 项目的一部分,我相信作者希望这样做,因为它实现了 GraalVM 支持的相同目标,除了这里,他们提议创建一个针对单个应用程序的极其精简的运行时环境。”。

(Valhalla 项目是 Oracle 正在进行的一项工作,它引入了值类型,这是一种允许 Java 程序在运行时更高效地管理数据的机制。Oracle 表示,当 Valhalla 项目最终并入 JDK 时,整个性能格局将发生变化。)

此外,其他大型 Java 社区的成员也对该 Leyden 项目表示感兴趣且期待。早前,Red Hat 的产品管理高级总监 Rich Sharples 就提到,该项目“旨在从 OpenJDK 本身的 Graal/SubstrateVM 中提供我们所需的大部分内容”。

深入改进 Java 平台:正式开启第一步

当然,不是所有应用程序都能很好地适应“Leyden”项目“静态映像”的这这两个约束,也不是所有的开发人员都愿意接受这个约束。

但总而言之,Mark Reinhold 从一开始就没有采用封闭世界的约束,而是通过探索一系列约束,提出了一种渐进的方法,由此产生的优化可能比封闭世界的约束弱,但优化应该适用于更广泛的现有代码。

此次,Mark Reinhold 于 5 月 20 日在 OpenJDK 的一篇文章中正式宣布了 “Leyden” 项目的启动 —— “现在是采取第一步并开始该项目的时候了”,也是意在通过 “Leyden” 项目加速 Java 业务的创建。

Mark Reinhold 表示,“将沿着上述约束范围逐步工作,从小而简单的开始,以便能够深入了解 Java 平台规范所需的更改”。“在此过程中,也将努力保持 Java 的可读性、兼容性和通用性的核心价值”。

Mark Reinhold 还补充称,从长远来看, Leyden 项目开发人员可能会采用完全封闭世界的限制来生成完全静态的映像。同时,该项目还将在很大程度上支持现有的 JDK 组件,如 JVM 热点、C2 编译器、共享类和应用程序数据以及 JLink 代码工具。

参考链接:https://www.computerworld.es/...

相关文章
|
5月前
|
安全 Java API
Java Web 在线商城项目最新技术实操指南帮助开发者高效完成商城项目开发
本项目基于Spring Boot 3.2与Vue 3构建现代化在线商城,涵盖技术选型、核心功能实现、安全控制与容器化部署,助开发者掌握最新Java Web全栈开发实践。
571 1
|
6月前
|
前端开发 Java API
2025 年 Java 全栈从环境搭建到项目上线实操全流程指南:Java 全栈最新实操指南(2025 版)
本指南涵盖2025年Java全栈开发核心技术,从JDK 21环境搭建、Spring Boot 3.3实战、React前端集成到Docker容器化部署,结合最新特性与实操流程,助力构建高效企业级应用。
1992 1
|
6月前
|
JavaScript Java 微服务
现代化 Java Web 在线商城项目技术方案与实战开发流程及核心功能实现详解
本项目基于Spring Boot 3与Vue 3构建现代化在线商城系统,采用微服务架构,整合Spring Cloud、Redis、MySQL等技术,涵盖用户认证、商品管理、购物车功能,并支持Docker容器化部署与Kubernetes编排。提供完整CI/CD流程,助力高效开发与扩展。
748 64
|
5月前
|
IDE 安全 Java
Lombok 在企业级 Java 项目中的隐性成本:便利背后的取舍之道
Lombok虽能简化Java代码,但其“魔法”特性易破坏封装、影响可维护性,隐藏调试难题,且与JPA等框架存在兼容风险。企业级项目应优先考虑IDE生成、Java Records或MapStruct等更透明、稳健的替代方案,平衡开发效率与系统长期稳定性。
254 1
|
5月前
|
存储 小程序 Java
热门小程序源码合集:微信抖音小程序源码支持PHP/Java/uni-app完整项目实践指南
小程序已成为企业获客与开发者创业的重要载体。本文详解PHP、Java、uni-app三大技术栈在电商、工具、服务类小程序中的源码应用,提供从开发到部署的全流程指南,并分享选型避坑与商业化落地策略,助力开发者高效构建稳定可扩展项目。
|
7月前
|
安全 JavaScript Java
java Web 项目完整案例实操指南包含从搭建到部署的详细步骤及热门长尾关键词解析的实操指南
本项目为一个完整的JavaWeb应用案例,采用Spring Boot 3、Vue 3、MySQL、Redis等最新技术栈,涵盖前后端分离架构设计、RESTful API开发、JWT安全认证、Docker容器化部署等内容,适合掌握企业级Web项目全流程开发与部署。
627 0
|
7月前
|
人工智能 安全 Java
掌握Java反射:在项目中高效应用反射机制
Java反射是一种强大功能,允许程序在运行时动态获取类信息、创建对象、调用方法和访问字段,提升程序灵活性。它在框架开发、动态代理、注解处理等场景中广泛应用,如Spring和Hibernate。但反射也存在性能开销、安全风险和代码复杂性,应谨慎使用。
158 0
|
5月前
|
Oracle 关系型数据库 Linux
【赵渝强老师】Oracle数据库配置助手:DBCA
Oracle数据库配置助手(DBCA)是用于创建和配置Oracle数据库的工具,支持图形界面和静默执行模式。本文介绍了使用DBCA在Linux环境下创建数据库的完整步骤,包括选择数据库操作类型、配置存储与网络选项、设置管理密码等,并提供了界面截图与视频讲解,帮助用户快速掌握数据库创建流程。
492 93

热门文章

最新文章

推荐镜像

更多