7

更快更省:带有新AOT引擎的Spring Native 0.11 发布 - spring.io

 2 years ago
source link: https://www.jdon.com/57953
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

更快更省:带有新AOT引擎的Spring Native 0.11 发布

与 Spring Native 0.10 相比,Spring Native 0.11 平均减少了20%到26% 的内存占用空间!Spring Native 0.11 的启动时间快了16%到35%!

我很高兴代表团队和所有做出贡献的人宣布Spring Native 0.11的发布,它为 Spring Boot 2.6 提供了原生支持。这个雄心勃勃的版本是 Spring 团队五个月辛勤工作的结果,他们一直致力于全新的架构,将 Spring 对使用 GraalVM 创建原生可执行文件的支持提升到一个新的水平。你已经可以在start.spring.io上尝试了!

最大的变化无疑是引入了新的 AOT 引擎,该引擎在构建时对 Spring 应用程序进行深入分析,以转换和优化应用程序并生成所需的 GraalVM 本机配置。这些转换由 Maven 和 Gradle Spring AOT 插件执行。

spring-boot-native.png

深入了解一下,AOT 引擎会在构建时评估条件,以生成优化的应用程序上下文和专门为您的应用程序设计的 Spring 工厂(Spring Boot 背后的插件系统)。在实践中,这意味着:

  • 在运行时执行的 Spring 基础设施更少
  • 在运行时评估的条件更少

减少内存占用

AOT 引擎的一个关键优势是它支持本机可执行文件的较小内存占用,因为本机配置更准确,需要的反射更少,并且在运行时需要更少的 Spring 基础设施。

与 Spring Native 0.10 相比,Spring Native 0.11 平均减少了20%到26% 的占用空间!

更快的启动

与 0.10 相比,Spring Native 0.11 的启动时间快了16%到35%,因为某些处理已从运行时转移到构建时。由于我们无法在本次小版本更新中对 Spring Boot 和 Spring Framework 的内部架构进行微调,因此仍有改进的空间。

JVM 上的 AOT

对将在 JVM 上运行的应用程序执行 AOT 转换有两个主要好处。

例如,第一个是能够轻松调试将在 IDE 中的 JVM(主应用程序或测试)本机上运行的代码。

第二个优势是更高的效率。目前,它的占据空间减少了大约4%到17%。

Bellsoft Liberica NIK

Bellsoft Liberica Native Image Kit (NIK) 是一个基于GraalVM 开源存储库和 Liberica JDK的原生镜像编译器发行版。从 Spring Native 0.11 开始,它默认用于 Buildpacks 原生支持,这与 JDK 端一致,默认使用 Liberica JDK。它也可以通过使用其SDKMAN集成或通过下载和安装在本地安装。

今年早些时候,该团队与 BellSoft 一起宣布,使用 Liberica Native Image Kit 的 VMware 客户可以将他们的 Spring 应用程序作为本机可执行文件运行,并确信它们得到了完全支持。

Spring Boot 3 一流的原生支持

Spring Native 0.11 实现了为 Spring Boot 提供成熟的原生选项的目标。Spring 团队现在可以专注于下一个主要步骤:将原生支持作为 Spring Framework 6、Spring Boot 3 和相关组合项目的一部分进行改进。

AOT 和原生将成为 Spring Boot 3 和 Spring Framework 6 的主旋律。

计划在Spring Boot 3 里程碑 2中开始提供开箱即用的 GraalVM 本机支持,目标是 2022 年 3 月下旬,利用我们在 Spring Native 工作中学到的所有知识。一般可用性计划于 2022 年末推出。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK