Pyston kehrt von den Toten zurück, um Python zu beschleunigen

Die Entwicklung von Pyston, einer Variante der Python-Laufzeit, die Just-in-Time-Kompilierung verwendet, um die Ausführung von Python-Programmen zu beschleunigen, ist nach einer langen Zeit der Schwebe wieder in Betrieb. Ein neues Entwicklungsteam hat Pyston 2.0 veröffentlicht.

Pyston bietet letztendlich einen Drop-In-Ersatz für die Standard-Python-Laufzeit CPython. Es ist mit Python 3.8 kompatibel, daher sollten Programme, die mit dieser Version von Python ausgeführt werden, unverändert auf Pyston ausgeführt werden.

Pyston führt die Codegenerierung mithilfe der Just-in-Time-Kompilierung (JITting) durch, um viele seiner Beschleunigungen zu erzielen. Pure-Python-Programme weisen die größten Verbesserungen auf, während Programme, die C / C ++ - Module für eine schnellere Ausführung verwenden, wie PyTorch, weniger oder gar keine aufweisen.

Eines der Ziele des Projekts war es, so nah wie möglich an der ursprünglichen Implementierung von CPython zu bleiben, da viele Projekte von Drittanbietern Annahmen über das Verhalten von CPython treffen. Daher begann Pyston 2.0 mit der vorhandenen CPython-Codebasis und fügte Funktionen aus Pyston 1.0 hinzu, die gut funktionierten, wie Caching-Attribute und JITting. Pystons JIT verwendet nicht mehr LLVM, sondern DynASM, um Assemblys direkt auszugeben.

JITting ist dieselbe Technik, die von einem anderen Projekt, PyPy, verwendet wird, um Python-Anwendungen erheblich zu beschleunigen - in einigen Fällen siebenmal so viel wie CPython. Die Hersteller von Pyston behaupten jedoch, dass ihr Ansatz gegenüber PyPy mehrere Vorteile bietet, darunter eine bessere Kompatibilität mit der C-API von CPython und einen geringeren Speicherverbrauch für gängige Workloads (z. B. Flask und DjangoCMS).

Pyston wurde bei Dropbox entwickelt und stellte die Entwicklung 2017 ein, als die Dropbox die Unterstützung zurückzog. Jetzt wird das Projekt unter der Obhut einiger seiner ursprünglichen Entwickler fortgesetzt, wenn auch unabhängig.

"Anfang 2020", heißt es im offiziellen Pyston-Blog, "waren genug Teile vorhanden, um ein Unternehmen zu gründen und ganztägig an Pyston zu arbeiten." Im Gegensatz zur ursprünglichen Pyston-Inkarnation ist die neue Version jedoch vorerst Closed-Source-Version, da die neuen Stewards ihr Geschäftsmodell bestimmen. Der auf dem GitHub des Projekts verfügbare Quellcode scheint aus seiner früheren Inkarnation zu stammen, nicht aus der neuesten Version.

Vorgefertigte Binärdateien von Pyston sind für Ubuntu 18.04 und Ubuntu 20.04 x86_64 verfügbar. Das Entwicklungsteam ist bereit, basierend auf dem Feedback der Benutzer weitere Editionen zu erstellen.