GraalVM加速了本地镜像的构建
GraalVM的Native Image快速构建模式缩短了构建时间,但建议仅用于开发目的。
GraalVM 22.1是甲骨文公司开发的多语言运行时的最新版本,具有针对Native Image的快速构建模式的早期迭代,该平台的技术是将Java代码提前(AOT)编译成独立的可执行文件。
GraalVM 22.1是4月26日推出的。有了快速构建模式,编译器在经济模式下工作,优化较少,从而使编译时间大大加快。本地图像AOT--将Java代码编译成独立的可执行文件,称为本地图像。根据被编译的应用程序的大小和复杂性,构建过程可能需要大量时间,GraalVM必须分析和优化整个应用程序及其依赖关系。GraalVM的开发者发现,快速构建模式使整个构建时间提高了43%。
快速构建模式只推荐用于开发目的,因为它以牺牲运行时性能和内存使用为代价优化构建时间。对于生产,开发人员应该使用默认的编译模式。计划要求对快速构建模式做更多的工作,以提高运行时性能和加快其他构建阶段的进程。由于性能的提高和内存占用的减少,GraalVM 22.1中的可执行构建时间也更快,native-image 。
GraalVM社区版可以从GitHub下载。GraalVM企业版可以从Oracle技术网络下载。
GraalVM 22.1中的其他新功能和改进:
- GraalVM社区版以预览形式提供给Apple Silicon。
native-image的默认行为已经进一步与java命令保持一致。如果在classpath或模块路径上找不到一个类,则构建不再失败。这可能是可取的,因为如果某些类不可用,应用程序可以定义不同的行为。- Native Image的条件反射配置,即只有在所提供的条件得到满足时才会应用类配置条目,现在可以通过追踪代理生成。通过条件反射配置,一个类的配置项只有在所提供的条件(如
typeReachable)得到满足时才会被应用,这使得配置更加精确并减少了可执行文件的大小。 - GraalVM企业版中的Node.js应用程序支持实验性引擎缓存。
- Python运行时增加了对冻结模块的支持,这使得从开始到REPL的速度提高了30%,使用的内存减少了40%。这一变化意味着经常使用的模块被解析,转换为字节码,并存储在二进制文件内。在启动时,运行时直接加载这个字节码,避免了开销。