Leyden项目解决了Java的痛点

Leyden通过向平台引入静态映像,可以减轻Java占用大量资源和长期存在的性能问题

Leyden项目解决了Java的痛点
智库

长期的Java痛点包括启动时间慢,达到峰值性能的时间短和占用空间大的问题,可以通过以下方法解决:提案被提出Oracle Java平台组首席架构师Mark Reinhold在OpenJDK社区中演讲

该提案称为Leyden项目,该提案将通过向Java平台和JDK引入静态映像的概念来解决这些难题。A静态映像是从运行该应用程序的应用程序派生的独立程序,并且没有其他静态映像也是封闭的。在运行时无法从图像外部加载类或旋转新字节码的世界

这两个约束条件允许进行构建时分析,该分析可以删除未使用的类并标识可以在构建时运行的初始化程序,从而减少了运行时映像的大小及其启动时间。这些约束条件还可以进行积极的提前编译,从而减少了映像的时间达到最佳性能

Reinhold警告说,尽管由于封闭环境的限制,并不是每个人都拥有静态映像,也不是针对每种类型的应用程序都需要静态映像,通常静态映像需要手动配置才能获得最佳效果,但是我们确实希望在重要的部署方案(例如小型)中,这些结果值得嵌入式设备和云莱因霍尔德写道

从过去的探索空间中汲取灵感,包括用于Java的GNU编译器和用于GraalVM Project Leyden的本机映像,将为Java平台规范添加静态映像。GrailVM将会发展以实现该规范。仅使用标准特定静态图像功能的开发人员将能够在GraalVM的JDK Native Image中的Leyden和可能出现的其他符合要求的实现之间轻松切换。他们可以在编译时间启动时间和图像的折衷之间进行选择。尺寸

负责该项目的Reinhold表示,没有意图通过将GraalVM中的本机映像代码合并到JDK中来实现Leyden。相反,Leyden将基于JDK中的现有组件,例如HotSpot JVM,Java提前编译器jaotc应用程序类数据共享和jlink链接工具

Reinhold于4月启动了对该项目的讨论。在一个OpenJDK邮件列表上表达的对该项目的初始反馈与一个人混杂在一起,这表明很难将静态图像添加到Java Platform Specification中,同时还指出该项目很有趣并且值得欢迎。表示他很高兴看到该建议,因为在使用Java进行微服务时,优化性能和内存占用所需要的时间一直是用户的主要抱怨。另一位评论者说,似乎是进行此类项目的合适时机

Leyden项目将从当前JDK主线版本的克隆开始JDK跟踪Leyden前进的主线版本,并将通过一系列JEP JDK增强建议来交付,这些建议可能跨越多个版本

版权IDG通讯公司