Folia
← 返回头版

Java HotSpot虚拟机引入提前编译功能 JEP 544提案优化应用启动性能

Oracle Java团队发布了JEP 544提案,为HotSpot虚拟机引入提前编译(AOT)代码功能1。该方案通过在训练运行中将应用代码编译为本地机器码并存储在AOT缓存中,使优化的本地码在生产运行时立即可用1。

这项功能结合了AOT编译的快速启动优势与JIT编译的动态适应能力1。在性能表现上,当AOT缓存不含AOT代码时,启动时间减少50%-70%;含AOT代码时启动时间可减少65%-80%1。在javac基准测试中,预热时间的第一次迭代获得约75%的总体改进,第四次迭代已接近稳定状态1。

该方案支持AArch64和x64处理器架构1。AOT代码与JIT代码可兼容共存,系统可自动在两者间切换1。AOT代码生成需满足两个约束条件:CPU架构和特性相同,以及使用相同的垃圾收集器1。用户可通过命令行选项进行操作,其中训练运行使用"java -XX:AOTCacheOutput=app.aot"生成缓存,生产运行使用"java -XX:AOTCache=app.aot"加载缓存1。


评论