GraalVM как JIT-компилятор для ARM JRE - PullRequest
0 голосов
/ 15 февраля 2019

Кто-нибудь знает, можно ли использовать GraalVM в качестве JIT-компилятора в дистрибутиве OpenJDK для архитектуры ARM?

Релизы, доступные на архитектуре galub точной архитектуры graalVM AMD, и проблемы, связанные с github ARM, связаны с созданием собственных образов (например, компилятор AOT для ARM).Возможно, дополнительный вопрос: если им удастся создать собственный образ для arm, означает ли это, что GraalVM также будет доступен в качестве JIT-компилятора для arm?Или 2 вещи независимы?Я начинаю в экосистеме компилятора :)

Огромное спасибо за ваш ответ.

Ответы [ 2 ]

0 голосов
/ 16 февраля 2019

JIT-компилятор Graal (, а не виртуальная машина) также включен в OpenJDK 11 в качестве экспериментальной функции, я думаю, и для ARM.Версия в OpenJDK будет немного уступать версии в репозитории github / oracle / graal, поскольку она обновляется только периодически, но преимущество в том, что для ее использования требуется всего несколько флагов командной строки.Его можно включить, передав следующие флаги VM при запуске приложения:

-XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI -XX:+UseJVMCICompiler
0 голосов
/ 15 февраля 2019

Редактировать: Я забыл, см. Ответ Йорна Верни, OpenJDK 11 уже содержит Graal JIT.

Компилятор Graal JIT также работает на ARM и может использоваться с OpenJDK.Он не работает с OpenJDK 8. OpenJDK 9 и 10 могут работать.Я бы порекомендовал использовать его с OpenJDK 11 (например, accepttopenjdk ).Языки трюфелей (Javascript, Python, ...) не протестированы на этой архитектуре.Самый простой способ запустить graal JIT на AArch64 для сборки из исходного кода:

См. Также README

export JAVA_HOME=/path/to/jdk-11
git clone https://github.com/oracle/graal.git
git clone https://github.com/graalvm/mx.git
export PATH=$(pwd)/mx:$PATH
cd graal/compiler
mx build
mx vm -cp test.jar org.something.Main

Чтобы увидеть полную командную строку, необходимую для запускаJava с Graal JIT, вы можете запустить mx -v vm -cp test.jar org.something.Main.

Относительно вашего второго вопроса: это совсем наоборот.JIT-компилятор уже есть, и сейчас мы работаем над тем, чтобы обеспечить доступность функции native-image для AArch64.

Надеюсь, это ответит на ваши вопросы.

Stefan

...