Back
Python 3.15 Benchmark: Minor Gains Over 3.14, JIT Shows Clear Improvement
SiTech AI Team3 min read

Python 3.15 Benchmark: Minor Gains Over 3.14, JIT Shows Clear Improvement

An informal benchmark of Python 3.15.0rc3 against versions back to 3.10 finds only small performance gains over 3.14, while the experimental JIT compiler delivers clear speedups and free-threading excels in multi-threaded tests.

A new informal benchmark by software engineer Miguel Grinberg compares Python 3.15 with earlier releases back to 3.10, and finds the upcoming version is only marginally faster than its predecessor. The clearest improvement comes from the experimental JIT compiler, while free-threading shows its value in multi-threaded workloads.

Benchmark Setup

The tests were run on a Linux laptop with an Intel Core i5 CPU. Two programs were used: fibo.py, which calculates Fibonacci numbers using recursion, and bubble.py, which sorts 10,000 random numbers using for-loops. Each program ran in single-threaded and four-threaded modes, with durations averaged over three runs. The matrix also covered PyPy 3.12, Node.js 26.3 and Rust 1.97 for ecosystem context, plus JIT and free-threading builds of CPython 3.13 and later. The author tested the 3.15.0rc3 release candidate, with the official 3.15 release still days away at the time of writing.

Single-Threaded Results

Python 3.15 finished the Fibonacci test in 6.94 seconds, slightly ahead of 3.14 at 7.17 seconds and well ahead of 3.10 at 15.94 seconds. Bubble sort showed a similar pattern, with 3.15 at 1.97 seconds versus 2.06 seconds for 3.14. Across both tests, only Python 3.11 and 3.14 delivered significant gains over their immediate predecessors, while some releases showed small regressions. PyPy 3.12 remained the fastest Python implementation at 5.54x the speed of 3.15 on the Fibonacci test, and Rust led the overall field at 77.24x.

The JIT compiler in Python 3.15 beat the standard interpreter of the same version by 1.20x on Fibonacci and 1.28x on bubble sort, a reversal from previous years when the JIT did not outperform the standard build. Free-threading builds performed roughly on par with the standard interpreter on single-threaded work.

Multi-Threaded Results

With four threads, the standard interpreter changed little, since the GIL prevents true concurrency. The free-threading build of Python 3.15 ran the Fibonacci test about 4.5 times faster than the standard interpreter, a ratio similar to 3.14, and was also faster on bubble sort. The JIT build kept a similar edge over the standard interpreter even with multiple threads, which the author notes is new with 3.15.

Conclusions

The author calls Python 3.15 a fairly minor performance improvement over 3.14, with some tests showing small regressions. The only clear gain is in the JIT, which remains experimental and not recommended for production. The author plans to keep production projects on 3.14 for now, but will use 3.15 as a day-to-day interpreter for new features such as JavaScript-like unpacking of comprehensions and lazy imports.

Sources: blog.miguelgrinberg.com

SSiTech

SiTech — AI-powered web development

We build fast, modern websites and bring AI into real business workflows. Have a project or a question? We'd love to help.