我已经知道有一个动态的AOT"在Openj9中, 其中Openjdk9有一个AOT编译器(jaotc)来编译字节代码到共享库。
但是Openj9没有像jaotc这样的程序,它使用"共享类"存储JITed代码,预计其他JVM可以使用它来加快启动时间。
我有以下问题:
如果有任何建议,将不胜感激。谢谢!
答案 0 :(得分:4)
你是对的,要在OpenJ9上启用AOT,必须启用-Xshareclasses选项。
- 如何确定Openj9 JVM是否使用由JIT生成的代码 另一个JVM? (在openjdk9中,有一个选项" -XX:+ PrintAOT" to 观察)
醇>
使用选项-Xshareclasses:verboseAOT
。你应该看到输出
消息如下:
Stored AOT code for ROMMethod 0x000000000FFAE2C8 in shared cache.
在后续运行中,您将看到以下消息:
Found AOT code for ROMMethod 0x000000001003C178 in shared cache.
- 如何使用OpenJ9的AOT?我用选项" -Xshareclasses"执行一个程序,然后再次执行这个程序?
醇>
如果要在后续运行的java程序中保留并重用AOTed代码,请使用-Xshareclasses:persistent
运行({{1}时,Linux和Windows平台上的' persistent'子选项是默认的已启用)。
使用此选项,将在磁盘上创建缓存,该缓存将在操作系统重新启动后持续存在。您还可以选择为共享类高速缓存(名称=子参数)提供名称,以区分不同应用程序的共享高速缓存。
- 是否有关于Openj9 AOT的文件?
醇>
我可以指出以下文档:
我还将打开一个github问题,检查是否有更多关于AOT的文档可用或可以创建。