Python-Compiler von Dropbox: Pyston verspricht mehr Tempo für Python-Anwendungen

Dropbox macht für seinen unter der Apache Software License stehenden Python-Compiler Pyston Werbung, indem der Speicherdienst dessen zu erwartende Vorzüge in Sachen Ausführgeschwindigkeit ins Spiel bringt.

Lesezeit: 2 Min.
In Pocket speichern
vorlesen Druckansicht Kommentare lesen 31 Beiträge
Von
  • Alexander Neumann

Die Programmiersprache Python hat ihre Vorzüge eher darin, dass sie in kurzer Zeit erlernbar ist und man zügig zu Ergebnissen kommt, allerdings ist sie nicht für die schnelle Ausführung von Programmen bekannt, mit der zum Beispiel die Sprachen C und C++ punkten. Das von Dropbox erstmals im April 2014 vorgestellte Open-Source-Projekt Pyston will hier durch einen JIT-Compiler (Just In Time) in die Bresche springen. Ihn hat der Datenspeicherdienst, dessen clienseitige Anwendungen in Python geschrieben sind, nun in Version 0.2 vorgelegt. Von der Produktionsreife ist die Python-Implementierung aber anscheinend noch weit entfernt und auch bei der Performance ist man noch lange nicht am Ziel.

Beeinflusst sind die Dropbox-Entwickler von den Erfolgen, die Googles JavaScript-Implementierung V8 mit der JIT-Kompilierung aufweisen kann. Zur JIT-Kompilierung verwendet Pyston die Compiler-Infrastruktur LLVM. Pyston übersetzt den Python-Code in das Zwischenformat der LLVM, die dort integrierte Optimierungseinheit bearbeitet den Code entsprechend und übergibt ihn der JIT-Engine, die wiederum Maschinencode erstellt. Um mögliche durch die LLVM-Interpretation auftretende Probleme zu umgehen, stellt Pyston Vermutungen über die zu erwartenden Typen von Variablen und Objekten an, die es zur Laufzeit überprüft. Je nachdem, ob die Voraussage stimmt oder nicht, wird eine Abfolge von Operationen durchlaufen, wobei weniger Zeit nötig ist, wenn sie richtig war.

Das neue Release kann nun auf experimenteller Basis auch mit Pythons C-API umgehen, über die die Sprache mit C-Code kommunizieren kann und Entwickler Zugriff auf Funktionen erhalten, die von der nativen Rechen-Power von C profitieren. Andere nun mit der Python-Implementierung unterstützte Sprach-Features sind Exceptions, Vererbung und Metaklassen, Lambda-Funktionen und Closures (Funktionsabschlüsse) sowie Multithreading-Möglichkeiten. Außerdem lassen sich mehr Standardbibliotheken verwenden.

Auf der Roadmap für die die nächsten Pyston-Versionen stehen eine optimierte Garbage Collection, das Beseitigen von Speicherlecks und die Möglichkeit, die Implementierung als sogenanntes Drop-in Replacement für gängige Python-Engines zu nutzen. (ane)