JIT-Compiler zu Python 3.13 hinzugefügt
- Der CPython-Kernentwickler Brandt Bucher hat einen Pull Request eingereicht, um dem Python-3.13-Branch einen JIT-Compiler hinzuzufügen.
- Diese Änderung dürfte eine der größten Veränderungen am CPython-Interpreter seit dem spezialisierten adaptiven Interpreter sein, der in Python 3.11 eingeführt wurde.
Was ist JIT?
- JIT- (Just in Time) Kompilierung bezeichnet ein Design, bei dem der Code bei seiner ersten Ausführung kompiliert wird.
- Ein JIT-Compiler ist ein Compiler, der Maschinencode erzeugt, im Gegensatz zu einem AOT- (Ahead of Time) Compiler.
- Python-Code wird zunächst in Bytecode kompiliert; dieser Bytecode hat für die CPU keine direkte Bedeutung und wird über eine spezielle Bytecode-Interpreter-Schleife ausgeführt.
Was ist ein copy-and-patch JIT?
- copy-and-patch JIT ist ein 2021 vorgeschlagenes Konzept, das als schneller Algorithmus für Laufzeitumgebungen dynamischer Sprachen entwickelt wurde.
- Die Idee hinter copy-and-patch JIT ist, Anweisungen für jeden Befehl zu kopieren und Bytecode-Argumente einzusetzen (zu patchen).
Vor- und Nachteile von copy-and-patch JIT
- Während ein „vollständiger“ JIT-Compiler Bytecode auf hoher Ebene in niedrigstufige Anweisungen einer Zwischensprache (IL) kompiliert, übersetzt copy-and-patch JIT Bytecode nach Maschinencode mithilfe einer Sammlung von Templates.
- copy-and-patch JIT muss keine komplexe JIT-Compiler-Architektur innerhalb der Python-Laufzeit ausführen; es genügt, die LLVM-JIT-Werkzeuge auf dem Rechner zu installieren, der CPython aus dem Quellcode kompiliert.
Wie funktioniert dieser JIT?
- Die neu zur API von Python 3.13 hinzugefügte API wird erweitert, damit zur Laufzeit ein einsteckbarer Optimierer erkannt werden kann.
- Der neue JIT ist ein optionaler Optimierer für diese neue Architektur.
- Wenn beim Kompilieren von CPython aus dem Quellcode das Flag
--enable-experimental-jit angegeben wird, werden Maschinencode-Templates für Python-Bytecode erzeugt.
Ist dieser JIT schneller?
- Erste Benchmarks zeigen eine Leistungssteigerung von etwa 2 bis 9 %.
- Dieser JIT ist ein Grundpfeiler für eine Reihe von Optimierungen, die die Python-Performance deutlich verbessern können.
Meinung von GN⁺
- Der in Python 3.13 hinzugefügte JIT-Compiler ist eine wichtige Veränderung zur Verbesserung der Ausführungsgeschwindigkeit von Python und kann insbesondere die Effizienz bei wiederholten Aufgaben erhöhen.
- copy-and-patch JIT bietet einen innovativen Ansatz zur Leistungssteigerung, ohne dass eine komplexe JIT-Architektur in die Python-Laufzeit der Nutzer integriert werden muss.
- Diese Technologie dürfte in der Python-Community spannende Diskussionen auslösen und voraussichtlich neue Möglichkeiten für die Performance-Optimierung von Python eröffnen.
1 Kommentare
Hacker-News-Kommentare