Python auf der GraalVM – eine vielfältige Welt

Bei Python stört sich so manches Entwicklerteam an der Ausführungsgeschwindigkeit. Die Ursache dafür ist, dass die Referenzimplementierung von Python (alias CPython) ein Interpreter ist, der Programme Anweisung für Anweisung ausführt. Ein Interpreter punktet zwar mit sehr guten Startzeiten, die tatsächliche Ausführungsgeschwindigkeit ist aber begrenzt. Das betrifft vor allem Programmcode mit vielen Schleifen und Aufrufen.

Der Just-in-Time-(JIT)-Compiler Graal in der GraalVM verspricht hier Abhilfe. Die Vorteile der JIT-Kompilierung nutzen auch andere Programmiersprachen wie JavaScript und Ruby, die ebenfalls auf der GraalVM ausgeführt werden können. Entwickler*innen haben dadurch die Möglichkeit, Programme zu schreiben, die aus Python-, Ruby- und JavaScript-Code bestehen und dennoch so ausgeführt werden können, als wären sie aus einem Guss. Im Ausführungsmodus Managed Mode, der jeglichen direkten Speicherzugriff verhindert, ist es sogar möglich, C-Erweiterungen voll isoliert auszuführen. Dadurch lassen sich auch große Teile von NumPy und SciKit Learn verwenden, ohne dafür Zugriff auf den nativen Speicher zu benötigen. Für Performanceanalysen und Debugging über Sprachgrenzen hinweg bietet GraalVM zudem Werkzeuge wie etwa die JVisualVM und einen Debugger.

Vorkenntnisse

  • Basiskenntnisse zu Java und Python

Lernziele

  • Möglichkeiten der neuen GraalVM-Python-Implementierung kennenlernen, insbesondere deren Performance, Kompatibilität und Integrierbarkeit mit Java, C sowie anderen GraalVM-Sprachen

Speaker

 

Florian Angerer
Florian Angerer ist Mitarbeiter im GraalVM-Projekt bei Oracle Labs und arbeitet an den Implementierungen der Programmiersprachen Python und R. Seine Forschungsinteressen liegen im Bereich der Programmiersprachen und Programmanalyse.

Tim Felgentreff
Tim Felgentreff ist Teil des GraalVM-Teams von Oracle Labs, wo er Language Lead für die Python-Implementierung auf GraalVM ist. Seinen Weg dorthin fand er durch sein Interesse am Design von Programmiersprachen und virtuellen Maschinen, sowie durch seine frühere Arbeit am PyPy/RPython-Projekt und anderen VMs für dynamische Programmiersprachen.

enterPy-Newsletter

Sie möchten über die enterPy
auf dem Laufenden gehalten werden?

 

Anmelden