Java 10 — JIT-компилятор
JEP 317 — экспериментальный JIT-компилятор на основе Java
Компилятор JIT написан на C++ и используется для преобразования Java в байт-код. Теперь в Java 10 есть возможность включить экспериментальный JIT-компилятор на основе Java, Graal для использования вместо стандартного JIT-компилятора. Graal использует JVMCI, интерфейс компилятора JVM, который был представлен в Java 9. Graal также доступен в Java 9. С помощью Java 10 мы можем включить Graal для тестирования и отладки экспериментального компилятора JVM.
Синтаксис
java -XX:+UnlockExperimentalVMOptions -XX:+UseJVMCICompiler
Компилятор Graal — это полностью переписанный ранее компилятор на основе C++, предназначенный для платформы на базе Linux/x64. Graal был представлен в Java 9 как альтернатива используемому в настоящее время JIT-компилятору. Graal — это подключаемый модуль для JVM, который можно подключать динамически. Он также поддерживает интерпретацию полиглотов.
Риски и предположения
Поскольку Graal является экспериментальным и подлежит тестированию с учетом различных тестов Hotspot и jdk с различными вариантами флагов. Он может не пройти некоторые тесты производительности по сравнению со стандартными компиляторами JIT Ahead of Time.
java