Die Alpha-Version der Programmiersprache Python 3.13.0a6 ist jetzt verfügbar. Sie ist bemerkenswert, da sie Teil der 3.13-Zweigs ist, auf dessen Grundlage die Herbst-Version von Python 3.14 stabilisiert wird. Dabei handelt es sich um eine experimentelle Implementierung des JIT-Compilers, die signifikante Leistungssteigerungen ermöglicht. Um JIT in CPython zu aktivieren, wurde die Build-Option „—enable-experimental-jit“ hinzugefügt. Für den Betrieb von JIT ist die Installation von LLVM als zusätzliche Abhängigkeit erforderlich.
Der JIT-Übersetzungsprozess von Maschinencode basiert auf der Architektur ‚Copy-and-Patch‘. Dabei wird mithilfe von LLVM eine Objektdatei im ELF-Format erstellt, die Informationen über die Bytecode-Instruktionen und erforderliche Datenersetzungen enthält. JIT ersetzt die während der Programminterpretation generierten Bytecode-Instruktionen durch ihre maschinenlesbaren Darstellungen, während notwendige Daten für Berechnungen eingesetzt werden. JIT kopiert vorgefertigte Templates bereits kompilierten Funktionen und setzt die erforderlichen Werte, wie Argumente und Konstanten, ein.
Der vorgeschlagene JIT zeichnet sich durch eine sehr hohe Geschwindigkeit bei der Codegenerierung, einfache Wartung und vollständige Integration mit dem Interpreter aus. Im Vergleich zur Kompilierung nach WebAssembly (Liftoff) generiert der neue JIT Code fünfmal schneller, und der resultierende Code läuft 50 % schneller. Im Vergleich zu den traditionellen JIT-Tools von LLVM bietet der in CPython integrierte JIT eine hundertmal schnellere Codegenerierung und einen um 15 % schnelleren resultierenden Code.
Quelle: opennet.ru
