Der Autor hat drei Python-Benchmarks aus einem früheren Test sowohl auf Python 3.14 als auch auf Python 3.15 erneut ausgeführt, jeweils mit aktiviertem und deaktiviertem JIT-Compiler. In der früheren Runde beschleunigte der JIT von 3.14 eine Mandelbrot-Berechnung um etwa 25% und Levenshtein-Distanzberechnungen um 27%, während eine Dijkstra-Graphsuche keine Verbesserung zeigte.
Python 3.15 hat den JIT grundlegend überarbeitet. Die Version 3.14 sagte wahrscheinliche Codepfade voraus, während 3.15 ein neues Tracing-Frontend verwendet, das den tatsächlich durchlaufenen Pfad des Programms aufzeichnet. Der Optimierer erhält zudem eine grundlegende Registerallokation, mehr Konstantenpropagierung und weniger Referenzzählungsoperationen. Die Codegenerierung für x86-64 und AArch64 wurde verbessert, und der erzeugte Maschinencode benötigt weniger Speicher.
Der Test aller vier Konfigurationen (3.14 und 3.15, jeweils mit eingeschaltetem und ausgeschaltetem JIT) trennt die Wirkung der Interpreter-Änderungen in 3.15 von der des JIT. Das ist wichtig, weil ein direkter Vergleich von 3.14 und 3.15 irreführend sein könnte. Der Interpreter von 3.15 enthält auch Änderungen außerhalb des JIT, darunter eine Änderung am Interpreter, der in den offiziellen 64-Bit-Windows-Builds verwendet wird.
Das Python-Release-Team berichtet von einer Verbesserung des geometrischen Mittels um 7% bis 8% gegenüber dem Standardinterpreter in seiner x86-64-Linux-Benchmark-Suite und um 11% bis 12% unter AArch64 macOS. LLVM 21 wird nur zur Build-Zeit benötigt, sodass Nutzer offizieller Binärdateien es nicht selbst installieren müssen.
Die erneute Ausführung des Autors zeigt, dass der stärkere JIT dieselben drei Workloads stärker beschleunigt, aber immer noch nicht jedes Programm. Das gilt besonders für Code, der den größten Teil seiner Zeit mit der Allokation von Objekten und dem Aufruf anderswo implementierter Operationen verbringt.
Quelle: Towards Data Science · Zusammengefasst von HeadlinesBriefing