1 Punkte von GN⁺ 2026-03-18 | Noch keine Kommentare. | Auf WhatsApp teilen
  • Der JIT-Compiler von CPython erreicht 11–12 % mehr Leistung auf macOS AArch64 und 5–6 % auf x86_64 Linux und erfüllt damit das Ziel früher als geplant
  • In den Versionen 3.13–3.14 war der JIT langsamer als der Interpreter, doch durch community-getriebene Entwicklung und strukturelle Verbesserungen wurde die Leistung deutlich gesteigert
  • Experimentelle Ansätze wie Trace Recording und Reference Count Elimination waren wichtige Wendepunkte
  • Zentrale Mitwirkende wie Savannah Ostrowski, Mark Shannon, Diego Russo, Brandt Bucher und viele neue Beteiligte arbeiteten gemeinsam daran
  • Das Ergebnis zeigt, dass community-getriebene Entwicklung und eine Kultur der Zusammenarbeit Open-Source-Leistung real verbessern können

Aktueller Stand der CPython-JIT-Leistungsverbesserung

  • Auf macOS AArch64 wurde eine um 11–12 %, auf x86_64 Linux eine um 5–6 % höhere Leistung gemessen
    • Die Werte basieren auf dem geometrischen Mittel; je nach Benchmark reicht die Spanne von 20 % langsamer bis über 100 % schneller
    • Die Unterstützung für free-threading ist noch nicht abgeschlossen und ist für die Versionen 3.15/3.16 vorgesehen
  • In den Versionen 3.13–3.14 war der JIT langsamer als der Interpreter, in dieser Version wurde nun jedoch eine spürbare Beschleunigung erreicht

Community-getriebene JIT-Entwicklung

  • Nach dem Ende der wichtigsten Förderung des Faster-CPython-Teams im Jahr 2025 wurde auf ein community-getriebenes Entwicklungsmodell umgestellt
    • Ziel: 5 % Verbesserung in 3.15, 10 % Verbesserung in 3.16 sowie Unterstützung für free-threading
    • Um den Bus-Faktor zu senken, wurden für jede Phase (Frontend, Middle-End, Backend) mindestens zwei Maintainer vorgesehen
  • Komplexe Probleme wurden in kleinere Teile zerlegt, um neue Mitwirkende einzubinden
    • Brandt Bucher teilte Arbeitseinheiten über „mega-issues“ auf
    • 11 Mitwirkende wandelten Interpreter-Instruktionen so um, dass sie JIT-Optimierungen besser unterstützen
  • Eine Kultur der Ermutigung zu Beiträgen und des Teilens von Erfolgen trug dazu bei, dass Beteiligte dauerhaft aktiv blieben
    • Dadurch verbesserte sich die Leistung auf x86_64 Linux von 1 % auf 3–4 %

Wichtige technische Wendepunkte

Trace Recording

  • Beim CPython Core Sprint erfolgte die Umstellung auf ein Tracing-basiertes Frontend
    • Anfangs war es 6 % langsamer, doch mit der Einführung einer Dual-Dispatch-Struktur verbesserte sich die Leistung
    • Dabei blieb die Größe des Interpreters weitgehend unter Kontrolle, während die Grundgeschwindigkeit des Interpreters erhalten blieb
  • Durch die Einführung von Trace Recording stieg die JIT-Code-Abdeckung um 50 %, was spätere Optimierungen effizienter machte

Reference Count Elimination

  • Der Ansatz entstand aus Matt Pages Arbeit an Bytecode-Optimierungen
    • Durch das Entfernen von Branches, die beim Dekrementieren von Referenzzählern entstehen, wurde die Leistung verbessert
    • Schon das Entfernen eines einzelnen Branches zeigte einen kumulativen Nutzen bei den Kosten
  • Die Arbeit lässt sich gut parallelisieren und wurde als Lernaufgabe für neue Mitwirkende genutzt, um die JIT-Struktur kennenzulernen

Infrastruktur und Teamaufbau

  • Savannah Ostrowski betreibt mit vier Maschinen eine Infrastruktur zur Messung der JIT-Leistung
    • Tägliche JIT-Läufe ermöglichen die frühe Erkennung von Leistungsregressionen
  • Diego Russo ist für den JIT auf ARM-Hardware und die Verbesserung der Profiler-Kompatibilität zuständig
  • Brandt Bucher baute die Grundlage des Machine-Code-Backends auf und senkte damit die Einstiegshürde für neue Mitwirkende

Zusammenarbeit und Wissensaustausch

  • Ratschläge von CF Bolz-Tereick zu PyPy verbesserten das Verständnis des JIT-Designs
  • Der Austausch mit Compiler-Expert:innen wie Max Bernstein sorgte für anhaltende Motivation und technisches Wachstum
  • Erfahrungen aus der Analyse des PyPy-Codes trugen zur Verbesserung der Qualität des CPython-JIT bei

Fazit

  • Der JIT in Python 3.15 ist das Ergebnis aus Zusammenarbeit in der Community, technischen Experimenten und verbesserter Infrastruktur
  • Menschen, Glück und eine Kultur der Zusammenarbeit erweisen sich als zentrale Triebkräfte für Leistungsinnovationen in Open Source

Noch keine Kommentare.

Noch keine Kommentare.