Leyden项目将静态图像引入Java平台和JDK

发布于:2021-01-07 17:22:55

0

141

0

Java JDK Leyden项目

甲骨文公司Java平台小组的首席架构师Mark Reinhold呼吁进行讨论,提出一个新项目,即Leyden项目,该项目将解决Java缓慢的启动时间,达到峰值性能的时间以及大型的长期难题。脚印。它将通过向Java平台和JDK引入静态映像来实现此目的。让我们仔细看看。

一个讨论调用Java平台组在甲骨文,马克莱因霍尔德的首席架构师发行,勾画出一个新的项目,项目莱顿,这将解决Java的缓慢启动时间长期的痛点,慢的时候峰值的建议通过向Java平台和JDK引入静态映像来提高性能和占用大量资源。

Java中的静态图片

Reinhold将静态映像描述为“从应用程序派生的独立程序,运行该应用程序,而没有其他程序”,并称为“封闭世界:它无法从映像外部加载类,也不能在运行时旋转新的字节码”时间。” 静态映像并不适合每个人,但对于相关的用例,这些约束条件允许进行构建时分析,以删除未使用的类并识别可在构建时运行的类初始化程序,从而减少了映像的大小及其启动时间。这些限制还允许进行积极的提前编译,从而大大减少了图像达到峰值性能的时间。

静态映像通常需要手动配置以充分利用它们,但是对于小型嵌入式设备或基于云的应用程序(例如微服务),这种耐心将通过大大改善的性能得到回报。

Leyden计划

这个新项目将从过去的努力中得到启发,例如针对Java的GNU编译器和GraalVM的本机映像功能。Reinhold写道:“ Leyden将为Java平台规范添加静态图像,我们希望GraalVM能够发展为实现该规范。然后,仅使用标准的,指定的静态图像功能的开发人员将能够在Leyden(在JDK中),Native Image(在GraalVM中)以及可能出现的任何其他兼容实现方式之间进行切换,从而在编译时间的权衡之间进行选择,启动时间和图片大小。”

Reinhold在Twitter上表达了他对GraalVM团队为莱顿计划做出贡献的热情。

但是,其目的不是通过将GraalVM的本机映像代码合并到JDK中来实现Leyden。相反,Leyden将基于现有的JDK组件(例如HotSpot JVM,jaotcAOT编译器,应用程序类数据共享和jlink链接工具)构建。

自从该提案于4月27日星期一发布以来,最初的反馈一直相当积极,尽管有些人提出,在Java平台规范中实现静态映像可能会很困难。

Leyden项目将作为一系列涵盖多个Java版本的JEP交付。