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 包的小图像。
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 包的小图像。