Login
Newsletter
Werbung

Mo, 23. April 2018, 14:26

Software::Entwicklung

Oracle veröffentlicht GraalVM 1.0

Oracle hat die universelle virtuelle Maschine GraalVM veröffentlicht, die Programmen, die in verschiedenen Sprachen geschrieben sind, eine vereinheitlichte Laufzeitumgebung bereitstellen soll. GraalVM soll in den meisten Fällen schneller sein als die native Java Virtual Machine (JVM).

Oracle

Zahlreiche Programmiersprachen laufen in virtuellen Maschinen, wobei diese überwiegend spezifisch für eine Programmiersprache entwickelt wurden, manchmal auch für eine Anzahl von Programmiersprachen. Die Compilierung, die Speicherverwaltung und zusätzliche Werkzeuge werden für jede Programmiersprache separat gepflegt. Nach Meinung von Oracle verletzt das das Prinzip, nicht zweimal dasselbe zu implementieren. Das größte praktische Problem ist dabei, dass die Kommunikation zwischen Programmen, die in verschiedenen Sprachen geschrieben sind, nur über ineffiziente Datenumformungen möglich ist. Außerdem weisen virtuelle Maschinen, die eine hohe Leistung bringen sollen, einen hohen Speicherbedarf auf und lassen sich nur schwer in andere Programme einbetten.

Um diese Probleme zu beseitigen, startete Oracle vor einigen Jahren ein internes Projekt, das eine neuartige Architektur für virtuelle Maschinen erkunden sollte. Aus diesem Projekt entstand, wie Oracle jetzt bekannt gab, die virtuelle Maschine GraalVM, die jetzt Version 1.0 erreicht hat.

GraalVM ist eine universelle virtuelle Maschine mit hoher Leistung. Sie unterstützt eine Vielzahl von Programmiersprachen und ermöglicht den schnellen Datenaustausch zwischen Programmen, die in unterschiedlichen Sprachen geschrieben sind.

GraalVM 1.0 unterstützt alle JVM-basierten Sprachen, darunter Java, Scala, Groovy und Kotlin, JavaScript einschließlich Node.js, LLVM-Bitcode, der unter anderem von C-, C++- oder Rust-Programmen kommen kann, und in experimenteller Form Ruby, R und Python. So lässt sich laut Oracle für jede Aufgabe die am besten geeignete Sprache wählen, ohne dass es dabei Schwierigkeiten oder einen hinderlichen Overhead gibt. GraalVM kann entweder als eigenes Programm oder eingebettet in Plattformen wie OpenJDK und Node.js oder sogar eingebettet in Datenbanken wie MySQL oder Oracle laufen.

Für JVM-basierte Sprachen bietet GraalVM einen speziellen Vorteil. Das Programm kann in nativen Code übersetzt werden, der sehr schnell gestartet werden kann und wenig Speicher benötigen soll. Dabei handelt es sich tatsächlich um Maschinencode für das jeweilige Zielsystem, so dass bei der Ausführung des Programms kein Bytecode mehr interpretiert werden muss. Optional kann aber der GraalVM-Compiler mit eingebunden werden, um weitere Module wie beispielsweise Plugins dynamisch auszuführen. Der große Vorteil von GraalVM sind laut Oracle die sprachunabhängigen Werkzeuge, darunter Debugger, Profiler und Heap-Ansicht.

Einer der ersten Nutzer, die GraalVM produktiv einsetzen, ist Twitter. Das Unternehmen lässt in Scala geschriebene Microservices mit GraalVM laufen, was zu höherer Geschwindigkeit, weniger Speicherallokationen und damit auch weniger Garbage Collection führt. Letzteres wiederum reduziert Zwangspausen in der Ausführung.

In der aktuellen Version 1.0 ist GraalVM für die Ausführung von JVM-basierten Sprachen und JavaScript einschließlich Node.js geeignet, während R, Ruby, Python und LLVM-basierte Sprachen noch experimentell sind. GraalVM gibt es in zwei Ausgaben. Die Community Edition (CE) ist im Quellcode frei auf Github verfügbar. Für Unternehmenskunden gibt es die Enterprise Edition (EE). GraalVM ist, wie Oracle betont, offen, und alle Interessenten sind zur Mitarbeit eingeladen. GraalVM ist zudem eine Option in Java 10 und soll die meisten JVM-Programme schneller ausführen als die native JVM. Weitere Informationen und eingestreute Geschwindigkeitsvergleiche findet man auf graalvm.org.

Werbung
Kommentare (Insgesamt: 7 || Alle anzeigen )
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung