OpenJDK JEP 544:把优化后的本地代码放进 AOT 缓存,加快启动与预热
OpenJDK 候选特性 JEP 544 提议在训练运行中把优化本地代码写入 AOT 缓存,生产启动时可直接加载,同时保留 JIT 应对负载变化。
OpenJDK 公布候选特性 JEP 544:Ahead-of-Time Code Compilation(Project Leyden)。思路是在训练运行中用与 JIT 相同的 C1/C2 编译器生成优化本地代码,写入现有 AOT 缓存;生产运行若命中即可立刻使用,从而缩短启动与预热,同时在负载变化时仍可回退到解释器与 JIT 重新优化。
官方称在微服务式双核 Linux/x64 基准上,含 AOT 代码的缓存可将部分框架应用启动时间再压低,合计约减 65%–80%;javac 预热曲线也更快贴近稳态。当前面向 AArch64 与 x64,要求训练与生产在 CPU 特性与垃圾回收器上一致,否则忽略缓存中的 AOT 代码但仍可用类与 profile 数据。工作流沿用 -XX:AOTCacheOutput / -XX:AOTCache,无需改应用代码。