Eine neue Version der Erweiterung Pyston-lite ist jetzt verfügbar, die einen JIT-Compiler für CPython implementiert. Im Gegensatz zum Projekt Pyston, das als eigenständiger Fork der CPython-Codebasis entwickelt wird, ist Pyston-lite als universelle Erweiterung konzipiert, die sich nahtlos an den Standard-Python-Interpreter (CPython) anschließt. Diese neue Version zeichnet sich durch die Unterstützung der Python-Versionen 3.7, 3.9 und 3.10 aus, zusätzlich zur zuvor unterstützten Version 3.8.
Pyston-lite ermöglicht die Nutzung der grundlegenden Pyston-Technologien, ohne den Interpreter zu wechseln, indem es als zusätzliche Erweiterung über die Paketmanager PIP oder Conda installiert wird. Pyston-lite ist bereits in den Repositories von PyPI und Conda verfügbar, und zur Installation genügt der Befehl „pip install pyston_lite_autoload“ oder „conda install pyston_lite_autoload -c pyston“. Es werden zwei Pakete angeboten: pyston_lite (das JIT selbst) und pyston_lite_autoload (führt die automatische JIT-Integration beim Start des Python-Prozesses durch). Zudem ist es möglich, JIT programmgesteuert über die Funktion pyston_lite.enable() zu aktivieren, ohne das autoload-Modul zu installieren.
Darüber hinaus haben die Entwickler angekündigt, dass sie Pyston-lite nun als ihr primäres Produkt betrachten. Das reguläre Pyston ermöglicht eine höhere Leistung, bringt jedoch die Herausforderung mit sich, den Interpreter auszutauschen, während Pyston-lite leicht in bestehende Konfigurationen integriert werden kann. Spezifische Optimierungen aus Pyston werden nach Möglichkeit in die Hauptversion von CPython übertragen. Langfristig besteht der Wunsch, die Implementierung des JIT-Compilers ebenfalls in die Hauptversion von CPython zu integrieren.
Im aktuellen Stand ermöglicht die Nutzung von Pyston-lite im Vergleich zu CPython 3.8 eine Leistungssteigerung von 10 % in den Macrobenchmarks und von 28 % im pyperformance-Test. Zum Vergleich beträgt der Leistungszuwachs bei der Verwendung von isoliertem Pyston 28 % bzw. 65 %.
Die bevorstehende Version des Hauptprojekts CPython 3.11 enthält Änderungen im Zusammenhang mit dem Caching des Bytecode-Zustands, der Beschleunigung von Funktionsaufrufen und der Anwendung schneller Interpreter für Typoperationen. Zudem wurden einige Optimierungen, die von den Projekten Cinder und HotPy vorbereitet wurden, integriert. Infolgedessen zeigt CPython 3.11rc2 in den vorher genannten Tests einen Leistungszuwachs von 12 % und 26 %, was mit den Werten von Pyston-lite vergleichbar ist (im neuen CPython und Pyston-lite werden unterschiedliche Optimierungen angewendet; die Portierung von Pyston-lite für CPython 3.11 wird die Performance dieser Version weiter steigern).
Quelle: opennet.ru
