Java 10: экспериментальный JIT-компилятор Graal
JEP 317 — Experimental Java-Based JIT Compiler
Традиционный JIT-компилятор написан на C++. Java 10 позволяет включить экспериментальный JIT-компилятор Graal, написанный на Java. Graal использует JVMCI (JVM Compiler Interface), введённый в Java 9. Graal доступен и в Java 9, но в Java 10 его можно включить для тестирования и отладки.
Синтаксис запуска
java -XX:+UnlockExperimentalVMOptions -XX:+UseJVMCICompiler
Graal — полная переработка C++ компилятора, ориентированная на Linux/x64. Является плагином к JVM, динамически подключаемым. Поддерживает полиглотную интерпретацию языков.
Риски и допущения
Graal экспериментальный и проходит тестирование на различных HotSpot и JDK тестах с разными флагами. Может проигрывать в производительности стандартному JIT AOT-компилятору на некоторых бенчмарках.
java
- Освоение операторов Java: типы, синтаксис и практические примеры
- Комментарии в Java: типы, использование и лучшие практики
- Освоение улучшенного цикла for в Java: синтаксис, примеры и лучшие практики
- Освоение строк в Java: создание, методы и лучшие практики
- Интерфейсы в Java: концепции, реализация и лучшие практики
- Анонимные внутренние классы в Java: определение, синтаксис и практические примеры
- Try-with-resources в Java: автоматическое управление ресурсами
- Аннотации в Java: типы, размещение и практические примеры
- Assertions в Java: практическое руководство по обнаружению багов и обеспечению надежности кода
- Понимание Java Vector: использование, особенности и сравнение с ArrayList