Как использовать AOT-компилятор в Openj9?
Я уже знал, что в Openj9 существует "динамический AOT", где Openjdk9 имеет компилятор AOT (jaotc) для компиляции байтового кода в разделяемую библиотеку.
Но у Openj9 нет такой программы, как jaotc, он использует "общие классы" для хранения кода JIT, который, как ожидается, будет использоваться другими JVM для ускорения времени их запуска.
У меня есть следующие вопросы:
- Как мне убедиться, что OpenJ9 JVM использует код JITed, созданный другой JVM? (В openjdk9 есть опция "-XX:+PrintAOT" для наблюдения)
- Как использовать AOT Openj9? Я запускаю программу с параметром "-Xshareclasses" и просто снова запускаю эту программу?
- Есть ли документ о Openj9 AOT?
Это будет оценено, если любой совет. Спасибо!
1 ответ
Вы правы, для того чтобы AOT был включен в OpenJ9, опция -Xshareclasses должна быть включена.
Как мне убедиться, что OpenJ9 JVM использует код JITed, созданный другой JVM? (В openjdk9 есть опция "-XX:+PrintAOT" для наблюдения)
Используйте опцию -Xshareclasses:verboseAOT. Вы должны увидеть выходные сообщения, такие как следующее:
Сохраненный код AOT для ROMMethod 0x000000000FFAE2C8 в общем кэше.
И при последующих запусках вы увидите такие сообщения:
Найден код AOT для ROMMethod 0x000000001003C178 в общем кэше.
Как использовать AOT Openj9? Я запускаю программу с параметром "-Xshareclasses" и просто снова запускаю эту программу?
Если вы хотите сохранить и повторно использовать AOT-код при последующих запусках вашей Java-программы, запустите с параметром -Xshareclasses:persistent (опция "persistent" используется по умолчанию на платформах Linux и Windows, когда включен -Xshareclasses). С помощью этой опции кэш создается на диске, который сохраняется после перезапуска операционной системы. Вы также можете указать имя общего кэша классов (name= subparameter), чтобы различать общие кэши для разных приложений.
Есть ли документ о Openj9 AOT?
Могу ли я указать вам следующую документацию:
Я также открою проблему github, чтобы проверить, доступна ли дополнительная документация об AOT или ее можно создать.