Leyden项目旨在缩短Java启动时间

Java语言架构师Mark Reinhold建议创建一个新的OpenJDK项目Leyden:具有更快启动速度和更低内存的静态应用程序二进制文件。一旦批准并完成,这将使开发人员能够(提前)将Java代码(及时)编译到本机应用程序中,并提供类似于GraalVM本机模式的功能

该项目得到了Oracle,Reinhold和RedHat的概念性支持。按照项目建议,RedHat的OpenJDK负责人Andrew Haley插话说:“这是个好消息。现在是时候将静态AOT编译付诸实践了。让我们完成它!” Paul Hohensee表示,亚马逊也有类似的看法,“很高兴看到这个提议。” RedHat是Java社区流程执行委员会的成员,而Amazon是维护Java发行版的有影响力的社区成员Amazon Corretto。诸如AWS Lambda和Azure Functions之类的无服务器框架的用户将受益于Leyden,因为运营商按时付费-快速的启动和执行时间可以降低冷启动的成本,并使每次调用费用接近或低于最低费用成本阈值。

Leyden和GraalVM将在开发人员用来编写和构建应用程序的类似链中工作:

  1. 开发人员编写自定义源代码,该源代码通常连接到JAR文件中并依赖于所选库的API。
  2. 自定义代码被编译为字节码,该字节码打包在一个或多个JAR文件中。
  3. Leyden将针对应用程序的运行方式引入新的拆分路径:
    1. 应用程序可以遵循传统过程来运行字节码,并在应用程序运行时将应用程序的“热点”优化为本地机器代码。
    2. 利用特定于OS的库编译应用程序的新机会,以使本机应用程序可以在与其他本机编译器工具类似的单个操作系统上运行。

该项目将建立并改善当今Java中存在的功能,开发人员可使用这些功能来分发应用程序。

  • javapackager用于为单个应用程序分发具有嵌入式和自定义JRE的应用程序。最终用户不需要在系统范围内安装Java即可运行每个应用程序,因为该应用程序的启动点将通过其捆绑的Java可执行文件进行。
  • jaotc是用于某些平台的实验性编译器,可生成本机可执行文件。Leyden可能直接在jaotc上展开

通过RedHat的应用程序框架Quarkus:Supersonic Subatomic Java ,本地编译的应用程序的优势已经非常明显。Quarkus利用GraalVM本地映像来生成应用程序,这些应用程序在首次请求或启动时作为无服务器功能是“超音速的”,而在本地编译的应用程序小于原始Java字节码的情况下是“亚原子的”。Quarkus主页在其首页的清晰图表中列出了这些指标,并带有用于直观比较的框:

  • 在JDK模式下,CRUD应用程序使用了145MB RAM。
  • 在原生模式下,CRUD应用程序使用28MB RAM,减少了约80%。
  • 在JDK模式下,CRUD应用程序对第一个HTTP响应花费了2.033秒。
  • 在原生模式下,CRUD应用花费了0.042秒,减少了约98%。

Leyden的完成没有时间表,因此该项目可以由功能驱动,而不是由日期驱动。凭借Java六个月的发布节奏,评估候选人将出现在发布中,以建立有效的反馈周期。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值