
此效能测试以Micronaut的HelloWorld应用为基準,比较启用机器学习行为推论(ML-enabled PGO)与未使用任何分析资料(Baseline)的执行效能差异
甲骨文(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)等短生命周期应用中更为明显。