甲骨文(Oracle)随JDK 24的发布,推出高性能执行环境GraalVM for JDK 24,本版本的最大亮点,是将机器学习应用于原生镜像文件(Native Image)静态分析流程,导入名为GraalNN的行为预测模型,协助原生镜像文件在缺乏执行期分析(Profiling)数据的情况下,预测程序控制流程中分支的执行机率,进一步提升原生镜像文件的高峰性能表现。

根据Oracle团队测试,在Micronaut、Spring、Quarkus等微服务框架下,平均可获得约7.9%的性能提升,且无需多阶段构建流程,只需加入特定参数,即可套用此优化技术。GraalNN模型背后的技术基础来自图神经网络(Graph Neural Network),官方将其应用于静态控制流程图上的分支机率推理,用以取代以往需要实际执行记录的PGO(Profile-Guided Optimization)数据。

除了性能上的强化,本次版本也加入一项有助缩小原生镜像文件容量的新技术SkipFlow,该技术让GraalVM在构建镜像文件时,能更精准地判断哪些程序代码在实际执行时才会用到,并排除那些永远不会被执行的类别与方法。根据Oracle提供的测试数据,这项优化平均可让镜像文件容量减少约6.35%,且不会延长构建时间。

针对近年逐渐普及的Java Vector API,新的GraalVM版本也在原生镜像文件中强化对矢量运算的支持,将多项矢量运算转换为底层硬件支持的SIMD指令执行,使执行性能与传统JIT模式相当。GraalVM团队并展示了一个名为Llama3.java的范例,该项目将大型语言模型推理逻辑实例于单一Java文件中,并结合Vector API与FFM API进行优化。测试中,采用GraalVM原生镜像文件构建的Llama3模型,可在纯CPU环境下达到每秒52.25 Token的生成速度,显示AOT编译搭配矢量优化可实际应用于语言模型领域。

在安全与法遵层面,GraalVM原生镜像文件强化SBOM功能,提供CycloneDX格式支持,并通过静态分析导出精准的组件相依树,协助开发者识别应用中引入的第三方组件来源与关联性。搭配Maven Plugin,可创建更精准的基准SBOM,进一步减少侦测误报。此外,也添加支持类别层级的SBOM中继数据,列出原生映像中所包含的模块、类别、字段、方法等结构,有助安全扫描工具进行更精细的风险评估。

Oracle引用社交媒体测试结果指出,在负载场景下,相较JIT模式,原生镜像文件产生的原生应用有更低的耗电量与内存使用率,特别是在微服务与函数即服务(FaaS)等短生命周期应用中更为明显。