JEP 544:Java 代码预编译提速
JEP 544: Ahead-of-Time Code Compilation
JEP 544 旨在通过 AOT 缓存技术,让 HotSpot 虚拟机在启动时直接加载优化后的原生代码,从而大幅缩短 Java 应用的启动和预热时间。该方案通过在训练运行中编译热点代码并存储,使得生产环境能瞬间获得峰值性能。当工作负载变化时,系统又能自动切换回 JIT 编译进行动态优化,完美兼顾了静态编译的启动速度与动态编译的灵活性。整个过程对开发者透明,无需修改代码或配置,仅需启用 AOT 缓存即可在 x64 和 AArch64 架构上实现显著的性能提升。
Java 应用将获得静态编译的部分优势,同时保留动态编译的敏捷性、可移植性和兼容性。
HN 评论区
24- cogman10
Leyden 确实非常依赖训练运行,我理解这一点,但这套搭建过程实在负担太重了。
目前并没有现成的工具能轻松完成这类训练运行,如果你想把它整合进去,往往得在构建流程中定制一套专属方案。对于像我维护的那些复杂应用来说,这尤其棘手。
我很欣赏它能带来的效果,但也很头疼启动它所需的投入。
- treyd
这和 Android 的提前编译(AOT)运行时在架构上有什么区别?
- cyberax
Excelsior JET 早在 25 年前就做到了:https://en.wikipedia.org/wiki/Excelsior_JET
可惜 Sun/Oracle 从未与他们合作推出原生应用。如果当时这么做了,或许能挽救 Java 在桌面端的命运。