The author reran three Python benchmarks from an earlier test on both Python 3.14 and Python 3.15, with the JIT compiler enabled and disabled in each version. In the earlier round, the 3.14 JIT sped up a Mandelbrot calculation by about 25% and Levenshtein distance calculations by 27%, while a Dijkstra graph search saw no improvement.
Python 3.15 has substantially rebuilt the JIT. The 3.14 version predicted likely code paths, while 3.15 uses a new tracing front end that records the path the program actually takes. The optimiser also gains basic register allocation, more constant propagation, and fewer reference-count operations. Code generation for x86-64 and AArch64 has improved, and the generated machine code uses less memory.
Testing all four configurations (3.14 and 3.15, each with the JIT on and off) separates the effect of interpreter changes in 3.15 from the effect of its JIT. This matters because a direct 3.14-versus-3.15 comparison could be misleading. The 3.15 interpreter also includes changes outside the JIT, including a change to the interpreter used by official 64-bit Windows builds.
The Python release team reports a 7% to 8% geometric-mean improvement over the standard interpreter on its x86-64 Linux benchmark suite, and 11% to 12% on AArch64 macOS. LLVM 21 is needed only at build time, so users of official binaries do not need to install it.
The author's rerun shows the stronger JIT helps the same three workloads more, but it still does not help every program, particularly code that spends its time allocating objects and calling operations implemented elsewhere.
Source: Towards Data Science · Summarized by HeadlinesBriefing