6 Punkte von darjeeling 2025-07-05 | Noch keine Kommentare. | Auf WhatsApp teilen

Ein ehrlicher Rückblick und eine Analyse eines Entwicklers, der über zwei Jahre an der Entwicklung des JIT-(Just-In-Time-)Compilers von CPython beteiligt war.
Der Artikel teilt den aktuellen Stand des CPython-JIT-Compilers – insbesondere des Optimierers – aus der Perspektive eines Entwicklers, der in den vergangenen zwei bis drei Jahren maßgeblich dazu beigetragen hat.
Positive Aspekte: Community-getriebenes Wachstum und gute Lehrbarkeit

  • Aufbau einer Community: Anfangs wurde das Projekt von nur wenigen Entwicklern getragen, inzwischen wird es trotz der Auflösung des Faster-CPython-Teams von Microsoft gemeinschaftsgetrieben weitergeführt. Neue zentrale Mitwirkende wie Savannah, Tomáš und Diego sind hinzugekommen; das war ein bewusster Schritt, um die langfristige Nachhaltigkeit des JIT-Projekts zu sichern.
  • Ein JIT, den man gut lernen kann: Der JIT wurde so entworfen, dass auch neue Mitwirkende ohne tiefes Compiler-Fachwissen ihn leicht erlernen und Beiträge leisten können. So wurde etwa ein „Tracing JIT“-Ansatz gewählt, damit das Verständnis über statische Analyse eines einzelnen Basic Blocks möglich ist, statt den komplexen gesamten Control-Flow-Graphen erfassen zu müssen, was die Einstiegshürde deutlich senkt.
    Enttäuschende Punkte: Leistung und fehlerhafte Medienberichte
  • Leistungsprobleme: Offen gesagt ist der JIT in CPython 3.13 langsam. Wenn mit einem aktuellen Compiler (Clang 20) gebaut wird, ist der JIT oft langsamer als der Interpreter; erst mit einem älteren Compiler (GCC 11) erreicht er überhaupt eine ähnliche Leistung. Auch in Version 3.14 gab es keine bahnbrechenden Performance-Sprünge, weil der Fokus darauf lag, neue Mitwirkende einzuarbeiten und die bestehende Typanalyse auszubauen. Der Autor hält diese Entscheidung für richtig, weil langfristiger Kompetenzaufbau wichtiger sei als kurzfristige Performance-Gewinne.
  • Unzutreffende Medienberichte: In der Anfangszeit berichteten Medien, der JIT sei „2–9 % schneller“ als der Interpreter, doch das entsprach nicht den Tatsachen. Dieser Wert beruhte auf einem Vergleich nicht mit dem eigentlichen CPython-Interpreter, sondern mit einem sehr langsamen „Tier-2-Interpreter“, der die Zwischenrepräsentation (IR) des JIT ausführt. Dadurch entstanden bei Nutzern falsche Erwartungen an den JIT, und weil es in der Praxis oft sogar zu Leistungseinbußen kam, war das für den Autor äußerst frustrierend.
    Fazit und Ausblick
    Der Autor bleibt in Bezug auf den JIT optimistisch. Es wurde eine starke Community aufgebaut, und derzeit laufen mehrere Optimierungsarbeiten parallel. Es wird erwartet, dass diese Bemühungen in Version 3.14 gemessen am geometrischen Mittel der Benchmarks Geschwindigkeitsverbesserungen im einstelligen Prozentbereich bringen werden.
    Der Autor sagt, wenn es wirklich ein „hässliches“ Problem gäbe, hätte er längst aufgehört, am JIT zu arbeiten, und beendet den Artikel mit einem positiven Ausblick darauf, dass sich der JIT dank der Stärke der Community weiterentwickeln wird.

Noch keine Kommentare.

Noch keine Kommentare.