Java 10: Desbloqueando o Compilador JIT Experimental Graal
JEP 317 - Compilador JIT Experimental Baseado em Java
O compilador JIT tradicional é escrito em C++ e converte bytecode Java em código de máquina. O Java 10 introduz a opção de habilitar um compilador JIT experimental baseado em Java, o Graal, em vez do JIT padrão. O Graal usa a JVMCI (JVM Compiler Interface), introduzida no Java 9. O Graal já estava disponível no Java 9 como alternativa. No Java 10, pode-se habilitar o Graal para testar e depurar o compilador JVM experimental.
Sintaxe para Habilitar
java -XX:+UnlockExperimentalVMOptions -XX:+UseJVMCICompiler
O compilador Graal é uma reescrita completa do compilador C++ anterior, visando plataformas Linux/x64. É um plugin da JVM que pode ser conectado dinamicamente. Suporta interpretação poliglota.
Riscos e Premissas
Como o Graal é experimental e sujeito a esforços de teste considerando vários HotSpots e testes do JDK com várias opções de flags, pode falhar em alguns benchmarks de performance comparado aos compiladores JIT Ahead-of-Time padrão.
Java
- Dominando Operadores Java: Tipos, Sintaxe e Exemplos Práticos
- Comentários em Java: Tipos, Uso e Boas Práticas
- Dominando o Loop for Aprimorado em Java: Sintaxe, Exemplos e Boas Práticas
- Dominando Strings em Java: Criação, Métodos e Boas Práticas
- Dominando Interfaces em Java: Conceitos, Implementação e Boas Práticas
- Dominando Classes Internas Anônimas em Java: Definição, Sintaxe e Exemplos Práticos
- Dominando Try-With-Resources em Java: Gerenciamento Automático de Recursos Explicado
- Anotações em Java Explicadas: Tipos, Posicionamento e Exemplos Práticos
- Asserções em Java: Guia Prático para Detectar Bugs e Garantir Confiabilidade do Código
- Entendendo o Java Vector: Uso, Recursos e Comparação com ArrayList