Dienstag ist GraalVM-Tag

GraalVM 19.2: Profilgesteuerte Optimierungen, Java Flight Recorder & die Roadmap bis 2021

Dominik Mohilo

© Shutterstock / Gorlov Alexander

Anfang des Jahres veröffentlichte Oracle die GraalVM 19, wenige Wochen später folgte das erste größere Update mit Version 19.1 der virtuellen Maschine. Mit GraalVM 19.2 beginnt ein neuer, regelmäßiger Release-Zyklus. In Sachen Features bringt das neue Release profilgesteuerte Optimierungen und Unterstützung für den Java Flight Recorder.

GraalVM ist Oracles Antwort auf die sich ständig verändernde Landschaft der Software-Entwicklung. Seit Version 19 ist die virtuellen Maschine für polyglotte Anwendungen produktionsreif und kann in Projekten bedenkenlos eingesetzt werden. Mit GraalVM 19.1 wurde noch einmal die Performance beim Kompilieren verbessert. Die aktuelle Version bringt die oben erwähnte Unterstützung für den Java Flight Recorder und die profilgesteuerten Optimierungen. Aber auch die erste Testversion einer Erweiterung für Visual Studio Code und die bereits erwartete LLVM Toolchain sind Teil des Updates.

Neue Roadmap bis ins Jahr 2021

Während zwischen GraalVM 19 und 19.1 nicht ganz zwei Monate vergingen, beträgt der Zeitabstand zwischen 19.1 und Version 19.2, die aktuell erschienen ist, sechs Wochen: Ziemlich unübersichtlich. Abhilfe für diese unregelmäßigen Releases soll die mit GraalVM 19.2 gestartete Release Schedule schaffen.

Die neue Roadmap sieht ein Major Release alle drei Monate vor (GraalVM 20, 20.1, 20.2 etc.), gefolgt von einem Patch Release (GraalVM 20.0.1, 20.1.1 etc.). Zusätzlich wird es vom letzten Major (also 19.3, 20.3 etc.) für ein volles Jahr sogenannte LTS-Patches geben, die dann als Version x.3.1 bis x.3.4 parallel zu den gewöhnlichen Patch-Releases der aktuellen Version veröffentlicht werden. Dieses Bild stellt die Sachlage etwas übersichtlicher dar:

Quelle: GraalVM / © 2018, 2019, Oracle and/or ist affiliates.

Doch nicht nur die Struktur des neuen Release-Zyklus’ ist definiert, sogar die exakten Daten können bereits im Kalender markiert werden:

Version Datum
19.2 20. August 2019
19.2.1 15. Oktober 2019
19.3 19. November 2019
19.3.1 14. Januar 2020
20.0 18. Februar 2020
19.3.2 14. April 2020
20.1 19. Mai 2020
19.3.3 14. Juli 2020
20.2 18. August 2020
19.3.4 20. Oktober 2020
20.3 17. November 2020
20.3.1 19. Januar 2021
21.0 16. Februar 2021
20.3.2 20. April 2021
21.1 18. Mai 2021
20.3.3 20. Juli 2021
21.2 17. August 2021
20.3.4 19. Oktober 2021
21.3 16. November 2021

Wer genau aufgepasst hat, hat natürlich gesehen, dass alle diese Daten Dienstage sind. Dienstag wird also zum GraalVM-Tag. Weitere Informationen zur neuen Schedule gibt es auf der GraalVM-Projektseite unter dem Menüpunkt Version Roadmap.

GraalVM 19.2: Das ist neu

Profilgesteuerte Optimierungen verbessern die Performance insofern, dass Daten von bereits gesammelten Profilen während der Image-Erstellung ausgewertet werden. Dieser Prozess der Datensammlung wurde in Version 19.2 der GraalVM vereinfacht. Während Nutzer bislang ein dezidiertes Binary eines nativen Images erstellt und für die Datensammlung gestartet werden musste, können die Profildaten nun auch beim Ausführen einer Anwendung im Just-in-Time-Modus gesammelt werden. Leider ist dieses Feature nur in der Enterprise-Edition verfügbar.

Seit Java 9 ist auch die VisualVM Teil der GraalVM. Entwickler, die beide Tools verwenden, haben ab GraalVM 19.2 auch die Möglichkeit, den Java Flight Recorder (JFR) einzusetzen. Der JFR hilft ebenfalls beim Sammeln von Diagnose- und Profildaten einer laufenden Java-Anwendung. Damit werden alle Events sichtbar, die zu einem bestimmten Zeitpunkt in der JVM oder der Anwendung selbst stattfinden. Aktivieren lässt sich die Unterstützung für den Flight Recorder, indem man die VisualVM startet (%GRAALVM_HOME/bin/jvisualvm) und anschließend im Menü Tools | Plugins | Available Plugins den JFR Snapshot öffnet.

W-JAX 2019 Java-Dossier für Software-Architekten

Kostenlos: Java-Dossier für Software-Architekten 2019

Auf über 30 Seiten vermitteln Experten praktisches Know-how zu den neuen Valuetypes in Java 12, dem Einsatz von Service Meshes in Microservices-Projekten, der erfolgreichen Einführung von DevOps-Praktiken im Unternehmen und der nachhaltigen JavaScript-Entwicklung mit Angular und dem WebComponents-Standard.

 

Ein weiteres Feature, das sich bereits abgezeichnet hat, ist die Implementierung der LLVM Toolchain. Mit dieser Erweiterung können in erster Linie C/C++-Anwendungen ausgeführt werden, die dann zu LLVM Bitcode kompiliert werden. Dieses Feature, darauf sei an dieser Stelle hingewiesen, ist noch experimentell. Ähnlich verhält es sich übrigens mit der neuen GraalVM-Erweiterung für Visual Studio Code: Diese ist ebenfalls experimentell und stellt aktuell lediglich grundlegende Funktionalitäten für das Bearbeiten und Debuggen von Anwendungen bereit, die auf der GraalVM laufen.

Weitere Informationen zu GraalVM 19.2 gibt es im Blog-Beitrag von Alina Yurenko und in den offiziellen Release Notes.

Verwandte Themen:

Geschrieben von
Dominik Mohilo
Dominik Mohilo
Dominik Mohilo studierte Germanistik und Soziologie an der Goethe-Universität in Frankfurt. Seit 2015 ist er Redakteur bei S&S-Media.
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
4000
  Subscribe  
Benachrichtige mich zu: