Microsoft Pyjion erhöht die Python-Geschwindigkeit

Ein neues Open-Source-Microsoft-Projekt, Pyjion, verbessert die Geschwindigkeit der Python-Sprache, indem der Standardinterpreter um eine JIT erweitert wird, die aus dem CoreCLR-Projekt von Microsoft abgeleitet ist.

Die Standardlaufzeit von Python, CPython, interpretiert nur den Bytecode von Python-Apps und beschleunigt nicht, indem der Code in irgendeiner Weise kompiliert wird. Eine übliche Methode, um Python zu beschleunigen, besteht darin, CPython vollständig zu ersetzen. PyPy, ein beliebter CPython-Ersatz, verwendet einen JIT-Compiler, um Python-Anwendungen zu beschleunigen.

PyPy bietet vielen Anwendungen, aber nicht allen, einen erheblichen Geschwindigkeitsschub und liefert manchmal sogar eine schlechtere Leistung als CPython. Es bietet auch nicht die beste Unterstützung für CPython-Erweiterungsmodule, die in Python-Anwendungen wie dem wissenschaftlichen Rechnen weit verbreitet sind. Daher können einige der eifrigsten Python-Benutzer PyPy überhaupt nicht nutzen.

Pyjion verfolgt einen anderen Ansatz. CPython wird eine JIT-API hinzugefügt, sodass mehrere JITs direkt an CPython angeschlossen werden können. Da CPython weiterhin verwendet wird, werden Apps wie gewohnt ausgeführt, einschließlich solcher, die auf Erweiterungsmodulen basieren.

Außerdem zielt Pyjion auf Python 3 ab, wo andere Python-Beschleunigungsprojekte Python 2 weitgehend bevorzugt haben. PyPy unterstützt Python 3, aber nur Python 3.2, so dass viele seitdem hinzugefügte Sprachkonstruktionen (wie z. B.  async/await) nicht funktionieren.

Microsoft behauptet, Pyjions Ansatz sei flexibler, da die JIT-Komponente als steckbare Ressource behandelt wird. Die Wahl einer JIT auf Basis von CoreCLR ist nicht die einzige Option, sondern dient als Proof-of-Concept. Laut der Dokumentation zu GitHub hofft Microsoft, dass dies "zu einer Zunahme der JIT-Laufzeiten für Python führen wird, sodass Benutzer eine JIT auswählen können, die am besten zu ihrer Arbeitslast passt".

Microsoft trägt zu bestehenden Open-Source-Projekten bei, indem es sich größtenteils indirekt aus eigener Kraft unterstützt. Bei seinen Beiträgen zum Linux-Kernel ging es beispielsweise hauptsächlich darum, Linux zu einem erstklassigen Bürger in Azure zu machen. Die Spracharbeit war jedoch etwas offener, und wenn Pyjion Traktion findet, ist dies einer der größten Beiträge, die Microsoft zum Ökosystem einer Sprache geleistet hat, in der es zuvor keine direkte Hand hatte.