您是对的,要在 OpenJ9 上启用 AOT,必须启用 -Xshareclasses 选项。
- 如何确定 Openj9 JVM 是否使用由另一个 JVM 生成的 JITed 代码?(在openjdk9中,有一个选项“-XX:+PrintAOT”可以观察)
使用选项-Xshareclasses:verboseAOT
。您应该会看到如下输出消息:
Stored AOT code for ROMMethod 0x000000000FFAE2C8 in shared cache.
在随后的运行中,您将看到如下消息:
Found AOT code for ROMMethod 0x000000001003C178 in shared cache.
- 如何使用 Openj9 的 AOT?我使用选项“-Xshareclasses”执行一个程序,然后再次执行该程序?
如果您想在 Java 程序的后续运行中保留和重用 AOT 代码,请运行 with -Xshareclasses:persistent
(启用时,'persistent' 子选项在 Linux 和 Windows 平台上是默认的-Xshareclasses
)。使用此选项,将在磁盘上创建缓存,该缓存在操作系统重新启动后仍然存在。您还可以选择为共享类缓存提供一个名称(名称=子参数),以区分不同应用程序的共享缓存。
- 有没有关于 Openj9 AOT 的文档?
我可以向您指出以下文档:
AOT 编译器
-Xshareclasses
我还将打开一个 github 问题来检查是否有更多关于 AOT 的文档可用或可以创建。