GraalVM 21.1 kommt mit experimenteller Java-16-Unterstützung

Das Update der Virtual Machine von Oracle bringt für verschiedene Sprachen neue Funktionen sowie Verbesserungen bei der Performance.

In Pocket speichern vorlesen Druckansicht 32 Kommentare lesen
Lesezeit: 3 Min.
Inhaltsverzeichnis

Oracle hat Version 21.1 der GraalVM veröffentlicht. Das Update der polyglotten Alternative zur Java Virtual Machine verspricht eine Reihe leistungssteigernder Verbesserungen, neue Funktionen sowie ersten experimentellen Support für Java 16. Die GraalVM Community Edition setzt nun auf den OpenJDKs Java 8 (8u292), Java 11 (11.0.11) und Java 16 (16.0.1) auf – die Enterprise Edition nutzt die entsprechenden Oracle JDKs.

Die Java-16-Distributionen stehen für Test und Evaluation zum Download zur Verfügung, allerdings nach wie vor nur mit Einschränkungen, beispielsweise beim Einsatz von Native Image. Letzteres wartet in GraalVM 21.1 mit erweiterten Lokalisierungsoptionen auf. Entwicklerinnen und Entwickler können nun festlegen, welche Sprachen in Native Image integriert werden sollen und welche Sprache davon als Standard gelten soll. So lassen sich etwa mit der Option -H:DefaultLocale=de -H:IncludeLocales=fr,en Englisch und Französisch hinzufügen, Deutsch aber als Standardsprache beibehalten.

Mit Blick auf eine Steigerung der Performance hat das Entwicklerteam unter anderem die Polyglot Runtime überarbeitet. Die in GraalVM 20.3 noch als experimentell eingeführte Multi-Tier-Kompilierung ist nun standardmäßig aktiviert. Dadurch nutzt Truffle nun zwei Kompilier-Stufen, von denen die erste auf hohe Geschwindigkeit ausgelegt ist, während die anschließende Stufe sämtliche Optimierungsfunktionen des GraalVM-Compilers ausschöpfen soll. Von Oracle durchgeführte Benchmarks hätten gezeigt, dass diese Vorgehensweise den "Warmup" für zahlreiche Programmiersprachen "signifikant verbessern" könne. Darüber hinaus sollen auch Änderungen am Java Debug Wire Protocol (JDWP) dazu beitragen, die Leistung von Java auf Truffle bei aktiviertem Debugging zu steigern.

Unter den mit GraalVM einsetzbaren Programmiersprachen soll insbesondere Ruby, das in Version 2.7 nun vollständig unterstützt wird, von der Multi-Tier-Compilierung profitieren. Python-Entwicklerinnen und -Entwicklern steht Support für SSL zur Verfügung sowie ein neues natives Backend für die POSIX API. In Sachen Multithreading mit GIL soll die Runtime zu CPython aufschließen, sodass nun Nebenläufigkeit für die meisten Workloads zur Verfügung steht. Mehr Geschwindigkeit verspricht auch WebAssembly-Code (GraalWASM). Der Interpreter soll in der neuen Version um bis zu zehnmal schneller arbeiten.

Nähere Informationen zu Version 21.1 sowie ein kompletter Überblick aller Neuerungen finden sich in den Release Notes. Die quelloffene Community Edition der GraalVM steht auf GitHub zum Download parat.

Die aus der ehemaligen JavaScript-Engine Nashorn hervorgegangene GraalVM zeichnet sich durch weitreichende Sprachunabhängigkeit aus. Entwickler können mit der virtuellen Maschine nicht nur Programme in JVM-basierten Sprachen wie Java, Scala, Kotlin oder Groovy laufen lassen, sondern auch Applikationen in JavaScript (inklusive Node.js), LLVM-Bitcode, Ruby, R sowie Python. Als Runtime lässt sich GraalVM sowohl einzeln als auch im Kontext von OpenJDK, Node.js oder Oracle-Datenbanken einsetzen.

(map)