GraalVM 22.0承诺提供更好的开发者体验

185 阅读2分钟

GraalVM 22.0承诺提供更好的开发者体验

甲骨文公司开发的多语言运行时的新升级版具有对Ruby、WebAssembly、Java和Python的改进

随着新发布的Oracle开发的GraalVM多语言运行时的22.0版本,该开源项目的开发者旨在改善开发者的体验。

GraalVM 22.0社区版于1月24日发布,适用于JDK 11JDK 17(标准Java的最新长期支持版本),可以从GitHub下载。GraalVM 22.0的企业版可以从Oracle获得

该版本的一个重点是GraalVM的Native Image技术,它可以提前将Java代码编译成独立的可执行文件,支持多种编程语言。为了让开发者的生活更轻松,GraalVM的开发者在过去的几个版本中努力减少图像构建时间和内存使用。

在GraalVM 22.0中,为减少图像大小做了一些改变,对堆栈帧元数据使用了更压缩的编码方法,以减少所有图像的大小。在GraalVM企业版中,对String.format() 的优化实现更进一步,提供了使本地化类不可达的选项,以显著减少图像大小。

GraalVM 22.0还改变了Native Image的构建输出,现在它将构建过程分解为几个阶段,并将当前阶段可视化,显示代码和堆的分解以及构建的统计数据。此外,GralVM的Native Build Tools技术也被装上了改进,如与本地代理更好地整合。

GraalVM 22.0还改变了编译器处理剖析信息的方式。作为一个优化的JIT编译器,编译器可以切换到AOT(超前)模式,即使在没有配置文件的情况下,主要的优化也可以执行合理的工作。这有助于Truffle语言在没有配置文件的情况下成为热门模式,以及在没有配置文件指导的Native Image中进行优化。

GraalVM 22.0中的其他改进:

  • 对于Java和编译器,一个新的循环旋转优化将未计算的循环转换为计算的循环,以便从矢量化和部分解卷等优化中受益。这个优化在默认情况下是禁用的。
  • 在企业版中,polyglot隔离器和其他功能使主机和客户应用程序之间的堆隔离。隔离功能改善了Truffle语言的启动、安全和暖机时间。
  • ECMAScript 2022模式默认是启用的。
  • 本地模式下的JavaScript和Node.js的辅助引擎缓存消除了程序的预热。预热来自于加载和解析等操作。
  • WebAssembly运行时现在使用Truffle Frame API。
  • 对于Python,GraalVM建设者继续致力于GraalVM Python运行时的兼容性和扩展模块支持,增加了对pyexpat_csv 模块的支持。
  • 增加了对Ruby 3.0的支持。另外,Ruby的解释速度更快。