Java 9模块中最酷的功能之一是能够准备一个非常优化的JRE+模块包,在这个过程中可以应用多种优化技术。虽然尚未实现,但 HotSpot 团队正计划在此阶段进行 AOT 编译。
OpenJ9 的"技巧包"和此链接阶段的优化是什么?
JLink和OpenJ9的SharedClasses缓存技术之间有很多重叠。 SharedClasses允许将J9ROMClass(类文件结构的重组更好版本)保存到共享内存区域中。 它还允许存储动态 AOT 代码以及 JIT 提示和配置文件数据以供以后运行。
我们已经考虑将一些功能从 SharedClasses 迁移到 JLink 中,并将继续进一步研究这些领域。
此外,我们还研究了在创建 jlink 图像时优化类数据的方法,删除不需要的方法、字段等,因为可能存在封闭的世界。
最后,我们实现了一个小占用空间的JVM jlink插件来创建类似于IBM J9 SFJ包的小图像。