Java 10: Experimentele Graal JIT-compiler ontgrendelen
JEP 317 – Experimentele Java-gebaseerde JIT-compiler
De traditionele JIT-compiler is in C++ geschreven en converteert Java-bytecode naar machinecode. Java 10 introduceert de optie om een experimentele Java-gebaseerde JIT-compiler, Graal, in te schakelen in plaats van de standaard JIT. Graal gebruikt de JVM Compiler Interface (JVMCI), geïntroduceerd in Java 9. Graal was al in Java 9 beschikbaar als alternatief; met Java 10 kan het eenvoudiger getest en gedebugd worden.
Syntaxis
java -XX:+UnlockExperimentalVMOptions -XX:+UseJVMCICompiler
De Graal-compiler is een complete herschrijving van de eerdere C++-compiler en gericht op Linux/x64-platforms. Graal is een plug-in voor de JVM en kan dynamisch geladen worden. Het ondersteunt ook polyglotte taalinterpretatie.
Risico's en aannames
Omdat Graal experimenteel is en onderhevig is aan testinspanningen (verschillende HotSpot- en JDK-tests met diverse vlagopties), kan het bij bepaalde benchmarks prestatieverlies vertonen ten opzichte van de standaard JIT Ahead-of-Time compilers.
Java
- Java-operators beheersen: typen, syntax en praktische voorbeelden
- Java-commentaar: typen, gebruik en best practices
- Java Enhanced For-lus beheersen: syntax, voorbeelden en best practices
- Java Strings beheersen: aanmaken, methodes en best practices
- Java interfaces meesteren: concepten, implementatie en best practices
- Java anonieme inner classes meesteren: definitie, syntax en praktische voorbeelden
- Java Try-with-resources meesteren: automatische resource management uitgelegd
- Java Annotaties uitgelegd: typen, plaatsing en praktische voorbeelden
- Java Assertions: een praktische gids voor bugdetectie en codebetrouwbaarheid
- Java Vector begrijpen: Gebruik, Kenmerken en Vergelijking met ArrayList
- Java 10: Experimentele Graal JIT-compiler ontgrendelen