Virtuelle Maschine GraalVM 22.1 baut native Images im Schnellverfahren
Neben dem neuen Quick-Build-Modus, der deutlich schneller kompilieren soll, bringt das Release eine erste Anbindung an Apple Silicon.
Oracle hat im turnusmäßigen Quartalsrhythmus GraalVM 22.1 veröffentlicht. Das Release der virtuellen Maschine bringt einen neuen Build-Modus, der native Images schneller erstellt. Außerdem hat das Release einen Build für Apple Silicon an Bord, der noch als Preview gekennzeichnet ist. Daneben gibt es kleinere Ergänzungen bei den Programmiersprachen jenseits von Java.
Auf die Schnelle
GraalVM bietet mit einem AOT-Compiler (Ahead-of Time) übersetzte native Images als Alternative zum Übersetzen von Bytecode zur Laufzeit über den JIT-Compiler (Just-in Time). Native Images sind eigenständig ausführbare Dateien, die neben den übersetzten Klassen der eigentlichen Anwendung die Klassen der Runtime Library und der Dependencies sowie nativen Code des JDK enthalten. Als Vorteil bringen sie bessere Startzeiten und einen geringeren Speicherbedarf mit.
Die beiden Vorversionen 21.3 und 22.0 zielten mit Optimierungen vor allem auf schlankere native Images. Das aktuelle Release führt einen neuen Quick-Build-Modus ein, der die Übersetzungszeit reduziert. Der Compiler verzichtet dabei auf umfangreiche Optimierungen, die eine genaue Analyse der Anwendung und der zugehörigen Dependencies erfordert. Als Benchmark hat das GraalVM-Team den Graal-Compiler in die Library libgraal übersetzt und dabei eine um 81 Prozent reduzierte Compile-Zeit und eine um 43 Prozent verbesserte Gesamt-Build-Zeit gemessen.
Der Modus lässt sich im Utility native-image
ĂĽber den Parameter -Ob
aktivieren. Da die verkĂĽrzte Build-Zeit zulasten der Performance der erstellten Anwendungen geht, ist der Quick-Build-Modus nur fĂĽr den Entwicklungsprozess und nicht fĂĽr das Erstellen der produktiven Anwendungen gedacht.
Jenseits des neuen Modus hat das Team seit GraalVM 21.1 wohl kontinuierlich die Build-Zeiten optimiert. Auch die Schlankheitskur fĂĽr native Images setzt das aktuelle Release fort. Als Messlatte dient die Spring-Beispielanwendung PetClinic.
Silicon und Fremdsprachen
Die kostenfreie Version GraalVM Community ist nun auch fĂĽr Apple Silicon verfĂĽgbar. Der derzeit noch als Preview gekennzeichnete Build darwin-aarch64
enthält die Komponenten JVM mit dem Graal Compiler, Native Image, JavaScript sowie Java on Truffle.
Lesen Sie auch
Die GraalVM: Javas Sprung in die Gegenwart?
GraalVM ist nicht auf JVM-Sprachen beschränkt, sondern arbeitet unter anderem mit Python, Ruby und R zusammen. Das aktuelle Release kann neuerdings Module unter Python einfrieren: Es übersetzt häufig verwendete Module in Bytecode und legt sie als Frozen Modules im Binary ab. Damit soll sich die Startzeit für die REPL (Read Eval Print Loop) unter Python um 30 Prozent reduzieren und ihr Speicherbedarf um 40 Prozent geringer ausfallen.
Für Ruby kann GraalVM 22.1 externe Exceptions vollständig über ForeignException
abfangen. Bisher lösten sie einen RuntimeError
aus. FĂĽr JavaScript bringt die Enterprise-Variante von GraalVM Engine-Caching fĂĽr Node.js-Anwendungen. SchlieĂźlich erweitert die Anbindung an R das Zusammenspiel mit den Grafikpaketen.
Weitere Neuerungen unter anderem fĂĽr die Installation und das Einbinden in Visual Studio Code lassen sich der offiziellen AnkĂĽndigung von GraalVM 22.1 entnehmen.
(rme)