Как использовать AOT-компилятор в Openj9?

Я уже знал, что в Openj9 существует "динамический AOT", где Openjdk9 имеет компилятор AOT (jaotc) для компиляции байтового кода в разделяемую библиотеку.

Но у Openj9 нет такой программы, как jaotc, он использует "общие классы" для хранения кода JIT, который, как ожидается, будет использоваться другими JVM для ускорения времени их запуска.

У меня есть следующие вопросы:

  1. Как мне убедиться, что OpenJ9 JVM использует код JITed, созданный другой JVM? (В openjdk9 есть опция "-XX:+PrintAOT" для наблюдения)
  2. Как использовать AOT Openj9? Я запускаю программу с параметром "-Xshareclasses" и просто снова запускаю эту программу?
  3. Есть ли документ о Openj9 AOT?

Это будет оценено, если любой совет. Спасибо!

1 ответ

Решение

Вы правы, для того чтобы AOT был включен в OpenJ9, опция -Xshareclasses должна быть включена.

  1. Как мне убедиться, что OpenJ9 JVM использует код JITed, созданный другой JVM? (В openjdk9 есть опция "-XX:+PrintAOT" для наблюдения)

    Используйте опцию -Xshareclasses:verboseAOT. Вы должны увидеть выходные сообщения, такие как следующее:

    Сохраненный код AOT для ROMMethod 0x000000000FFAE2C8 в общем кэше.

    И при последующих запусках вы увидите такие сообщения:

    Найден код AOT для ROMMethod 0x000000001003C178 в общем кэше.

  2. Как использовать AOT Openj9? Я запускаю программу с параметром "-Xshareclasses" и просто снова запускаю эту программу?

    Если вы хотите сохранить и повторно использовать AOT-код при последующих запусках вашей Java-программы, запустите с параметром -Xshareclasses:persistent (опция "persistent" используется по умолчанию на платформах Linux и Windows, когда включен -Xshareclasses). С помощью этой опции кэш создается на диске, который сохраняется после перезапуска операционной системы. Вы также можете указать имя общего кэша классов (name= subparameter), чтобы различать общие кэши для разных приложений.

  3. Есть ли документ о Openj9 AOT?

    Могу ли я указать вам следующую документацию:

    Компилятор AOT

    -Xshareclasses

    Я также открою проблему github, чтобы проверить, доступна ли дополнительная документация об AOT или ее можно создать.

Другие вопросы по тегам