GraalVM
Software
From Wikipedia, the free encyclopedia
GraalVM ist eine Laufzeitumgebung und ein JDK-Stack aus dem Umfeld von Oracle, der mehrere Programmiersprachen auf einer gemeinsamen Infrastruktur aus dem Graal-Compiler und dem Truffle-Framework ausführen kann. Ziel ist es, Anwendungen mit hoher Leistung, kurzen Startzeiten und geringem Speicherbedarf zu ermöglichen.
Überblick
- Polyglot: Unterstützung u. a. für Java, JavaScript/Node.js sowie Sprachen auf Basis von LLVM-Bitcode; weitere Sprachen wie Python, Ruby und R sind teils verfügbar bzw. in unterschiedlichen Reifegraden.
- Gemeinsame Ausführungsbasis: Interpreter werden mit Truffle implementiert und durch den Graal-JIT optimiert; alternativ ist Ahead-of-time Kompilierung mit Native Image möglich.
- Ziele: schnelle Startzeit, gute Performance und einfache Einbettung von Skripting in JVM-Anwendungen.
Wichtige Komponenten
- Graal – optimierender JIT-Compiler für die JVM.
- Truffle – Framework zum Implementieren von Sprachinterpreteren mit gemeinsamen Optimierungen.
- Native Image – Toolkette zur Erstellung eigenständiger, statisch gelinkter Binärdateien.
- Polyglot-APIs – Schnittstellen, um mehrere Sprachen in einem Prozess zu kombinieren.
Betriebsmodi
- JVM-Modus: Ausführung auf einer regulären Java Virtual Machine (OpenJDK/HotSpot-Variante mit Graal).
- AOT/Native (Native Image): Erzeugt Binärdateien mit sehr kurzer Startzeit und reduziertem Speicherbedarf.
Einsatzszenarien
- Microservices und Cloud-/Serverless-Workloads mit strengen Latenz- und Speicheranforderungen.
- Einbettung von Skriptsprachen in Java-Anwendungen (z. B. Java + JavaScript).
- Verarbeitung von bestehenden LLVM/C/C++-Artefakten via LLVM-Bitcode.
Editionen und Lizenzierung
- Community Edition (CE): Open-Source-Bausteine unter gängigen freien Lizenzen.
- Enterprise Edition (EE): kommerzielle Variante mit zusätzlichen Optimierungen/Features.