Java 9 включает в себя Graal?

Я читаю JEP 317. В нем говорится, что Graal (новый экспериментальный JIT-компилятор на основе Java) будет частью JDK 10, но затем говорится, что он уже доступен в JDK 9. Итак, в чем же смысл JEP 317? Java 9 включает в себя Graal или нет?

2 ответа

Из одной из моих заметок на linux-x64 (из коробки), чтобы использовать Graal на JDK 9, вы можете включить его, используя:

-XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI -XX:+UseJVMCICompiler

Источник: твит от Криса.


Если вы явно готовы использовать org.graalvm.* классы, они не присутствуют в сборке JDK-9, за исключением дистрибутива Linux здесь, и статус JIT-317#Experimental Java-Based JIT Compiler также показывает нечто подобное.

Status    Integrated
Scope JDK
Release   10

Обновление:- Чтобы использовать Graal на JDK10, можно включить его с помощью:-

-XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI -XX:+UseJVMCICompiler -Djvmci.Compiler=graal

Грааль входит в 9, но используется по-другому.

В Java 9 Graal используется как компилятор AOT(Ahead of time), который позволяет пользователям использовать jaotc инструмент для создания скомпилированных вручную .so библиотеки.

Эти библиотеки могут быть загружены при запуске JVM и использованы напрямую.

Подробное описание можно найти в соответствующем Java 9 JEP: http://openjdk.java.net/jeps/295

В Java 10 Graal, как описано в JEP 317, может использоваться в качестве JIT-компилятора вместо HotSpot.

Это означает, что классы будут компилироваться в JVM "на лету", а не требовать ручной компиляции заранее.

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