GraalVM 20.2 recycelt Speicher der Bibliothek libgraal für das Betriebssystem

Oracles virtuelle Maschine bringt unter anderem Neuerungen für den Support nativer Images sowie neue Funktionen für die JavaScript-Runtime.

Lesezeit: 2 Min.
In Pocket speichern
vorlesen Druckansicht Kommentare lesen 11 Beiträge
GraalVM 20.2 recycelt Speicher der Bibliothek libgraal für das Betriebssystem
Von
  • Madeleine Domogalla

Oracle hat eine Version 20.2 der auf weitgehende Sprachunabhängigkeit ausgelegten GraalVM herausgegeben. Das aktuelle Release hat Neuerungen für die Compile-Zeit im Gepäck. Außerdem behebt die aktuelle Version Fehler, die mit der GraalVM-Bibliothek libgraal aufgetreten sind.

In Richtung Java gedacht bringt das Update Support für die Freigabe von Speicher. Wenn eine Anwendung in eine stabile Phase eintritt und die Kompilierung inaktiv wird, wird der Speicher, der von libgraal genutzt wird, an das Betriebssystem abgegeben. Auf diese Weise lässt sich offenbar die Auswirkung des RSS-Speichers eines GraalVM-Prozesses reduzieren: Ein nicht verwendeter Compiler verbraucht keine Ressourcen. Für die Enterprise-Version der GraalVM verringert sich die Interferenz zwischen Compiler-Threads, beim Nutzen mehrerer Isolates.

Die Community-Version von GraalVM 20.2 basiert auf den OpenJDK-Versionen 1.8.0_262, und 11.0.8. Oracles Enterprise-Version von GraalVM greift auf die Oracle JDK-Version 1.8.0_261 sowie 11.0.8.0.2 zurück.

Auch für die JavaScript-Community gibt es Neuigkeiten: GraalVM 20.2 aktualisiert Node.js auf Version 12.18. Darüber hinaus fügt das Update einige Proposals des für die JavaScript-Standardisierung zuständige Technical Committee 39 (TC39) hinzu, darunter beispielsweise Intl.NumberFormat Unified API und Logical Assignment Operators.

Das Entwicklerteam hinter GraalVM hat an der Generierung nativer Images gearbeitet, die statisch mit muslc verknüpft sind. Entwickler, die musl-gcc im Pfad verwenden, können mit --static --libc=musl ein Native Image erzeugen, das statisch mit muslc8/code9 verknüpft ist. Nähere Informationen dazu finden sich in der Dokumentation.

Darüber hinaus führt das Update die Funktion ein, "meist statische" native Images zu erzeugen, die statisch alles außer libc verknüpfen. Dadurch lassen sich native Images erstellen, die in kleinen Docker-Images zum Einsatz kommen können. Zudem hat das Entwicklerteam hinter der Virtual Machine die Initialisierungsstrategie für Klassen geändert. Zum Zeitpunkt der Erstellung ist es möglich, lediglich einen kleinen Teil der JDK-Bibliothek zu initialisieren.

Neben Aktualisierungen für die LLVM-Runtime bringt das Update weitere Fehlerbehebungen und Überarbeitungen für Python. GraalVM 20.1 hatte bereits auf mehr Support für Python gesetzt. Weiterführende Informationen zum aktuellen Release finden sich in den Release Notes und auf GitHub.

(mdo)