Java9 链接和 OpenJ9

Java9 linking and OpenJ9

java9 个模块中最酷的功能之一是能够准备一个非常优化的 JRE+模块捆绑包,在此过程中可以应用多种优化技术。虽然尚未实现,但 HotSpot 团队计划在此阶段进行 AOT 编译。

什么是 OpenJ9 "bag of tricks" 以及此链接阶段的优化?

JLink 和 OpenJ9 的 SharedClasses 缓存技术有很多重叠之处。 SharedClasses 允许将 J9ROMClass(class 文件结构的重组更好版本)保存到共享内存区域。它还允许存储动态 AOT 代码以及 JIT 提示和配置文件数据以供以后运行。

我们已经考虑将一些功能从 SharedClasses 转移到 JLink 中,并将继续进一步研究这些领域。

此外,由于封闭世界的可能性,我们研究了在创建 jlinked 图像时优化 class 数据的方法,删除不需要的方法、字段等。

最后,我们实现了一个 Small Footprint JVM jlink 插件来创建类似于 IBM J9 SFJ 包的小图像。