Faster CPython Ideas

Discussion and work tracker for Faster CPython project.

New ideas should be created as new issues. It is ok if the idea is not fully formed -- we treat them as discussions to arrive at something actionable. (We had previously used discussions for this, but that is now deprecated).

The CPython issue tracker should be used for actual work-in-progress.

Some links to presentations and other preliminary documentation:

Published Results

linux x86_64 (linux)

date fork ref version hash vs. 3.10.4: vs. 3.11.0: vs. base:
2023-03-25 python main 3.12.0a6+ 30a306c 1.30x faster 1.03x faster
2023-03-21 iritkatriel remove_JUM 3.12.0a6+ 12595f6 1.30x faster 1.03x faster 1.01x slower
2023-03-21 python 7f760c2fca 3.12.0a6+ 7f760c2 1.31x faster 1.04x faster
2022-10-24 python deaf509e8f 3.11.0 deaf509 1.25x faster
2022-03-23 python 9d38120e33 3.10.4 9d38120 1.27x slower

linux x86_64 (pythonperf2)

date fork ref version hash vs. 3.10.4: vs. 3.11.0: vs. base:
2023-03-25 python main 3.12.0a6+ 30a306c 1.03x faster
2023-02-05 python ef7c2bfcf1 3.12.0a4+ ef7c2bf 1.04x faster
2023-01-29 python c4170c36b0 3.12.0a4+ c4170c3 1.04x faster
2023-01-22 python d717be04dc 3.12.0a4+ d717be0 1.03x faster
2023-01-16 python 7b14c2ef19 3.12.0a4+ 7b14c2e 1.03x faster
2023-01-08 python e47b13934b 3.12.0a3+ e47b139 1.03x faster
2023-01-01 python edfbf56f4c 3.12.0a3+ edfbf56 1.04x faster
2022-12-26 python ad3c99e521 3.12.0a3+ ad3c99e 1.03x faster
2022-12-19 python 702a5bc463 3.12.0a3+ 702a5bc 1.02x faster
2022-12-11 python 70be5e42f6 3.12.0a3+ 70be5e4 1.02x faster
2022-12-05 python e3a3863cb9 3.12.0a2+ e3a3863 1.02x faster
2022-11-28 python 594de165bf 3.12.0a2+ 594de16 1.02x faster
2022-11-21 python cdde29dde9 3.12.0a2+ cdde29d 1.02x faster
2022-12-06 python a7a450f84a 3.11.1 a7a450f 1.00x faster
2022-10-24 python deaf509e8f 3.11.0 deaf509
2022-09-11 python ed7c3ff156 3.11.0rc2 ed7c3ff 1.01x slower
2022-08-05 python 41cb07120b 3.11.0rc1 41cb071 1.01x faster
2022-07-25 python 0771d71eea 3.11.0b5 0771d71 1.01x faster
2022-07-11 python 5a7e1e0a92 3.11.0b4 5a7e1e0 1.00x faster
2022-06-01 python eb0004c271 3.11.0b3 eb0004c 1.00x slower
2022-05-30 python 72f00f420a 3.11.0b2 72f00f4 1.00x faster
2022-05-06 python 8d32a5c8c4 3.11.0b1 8d32a5c 1.01x faster
2022-04-05 python 2e49bd06c5 3.11.0a7 2e49bd0 1.02x slower
2022-03-07 python 3ddfa55df4 3.11.0a6 3ddfa55 1.07x slower
2022-02-03 python c4e4b91557 3.11.0a5 c4e4b91 1.06x slower
2022-01-13 python 9471106fd5 3.11.0a4 9471106 1.06x slower
2021-12-08 python 2e91dba437 3.11.0a3 2e91dba 1.06x slower
2021-11-05 python e2b4e4bab9 3.11.0a2 e2b4e4b 1.08x slower
2021-10-05 python 7c12e4835e 3.11.0a1 7c12e48 1.11x slower
2023-02-07 python aad5f6a891 3.10.10 aad5f6a 1.22x slower

windows amd64 (pythonperf1)

date fork ref version hash vs. 3.10.4: vs. 3.11.0: vs. base:
2023-03-25 python main 3.12.0a6+ 30a306c 1.21x faster 1.09x faster
2023-03-07 python f9774e57d8 3.12.0a6 f9774e5 1.20x faster 1.09x faster
2023-02-07 python 3c67ec394f 3.12.0a5 3c67ec3 1.22x faster 1.10x faster
2023-01-10 python 3d5d3f7af6 3.12.0a4 3d5d3f7 1.23x faster 1.11x faster
2022-12-06 python b6bd7ffcbc 3.12.0a3 b6bd7ff 1.24x faster 1.12x faster
2022-11-14 python 3b9d793efc 3.12.0a2 3b9d793 1.18x faster 1.07x faster
2022-10-25 python 4ae1a0ecaf 3.12.0a1 4ae1a0e 1.12x faster 1.02x faster
2022-10-24 python deaf509e8f 3.11.0 deaf509 1.11x faster
2023-02-07 python aad5f6a891 3.10.10 aad5f6a 1.01x slower 1.12x slower
2022-03-23 python 9d38120e33 3.10.4 9d38120 1.11x slower
2021-12-06 python 2cd268a3a9 3.10.1 2cd268a 1.02x slower 1.12x slower

darwin arm64 (darwin)

date fork ref version hash vs. 3.10.4: vs. 3.11.0: vs. base:
2023-03-25 python main 3.12.0a6+ 30a306c 1.19x faster * 1.02x slower
2023-03-18 python main 3.12.0a6+ 3adb23a 1.20x faster * 1.02x slower
2023-03-11 python main 3.12.0a6+ bb396ee 1.19x faster * 1.02x slower
2023-03-06 python f533f216e6 3.12.0a5+ f533f21 1.19x faster * 1.01x slower
2023-02-26 python f3cb15c88a 3.12.0a5+ f3cb15c 1.20x faster * 1.01x slower
2023-02-19 python b1b375e267 3.12.0a5+ b1b375e 1.21x faster * 1.00x faster
2023-02-13 python a1f08f5f19 3.12.0a5+ a1f08f5 1.23x faster * 1.02x faster
2023-02-05 python ef7c2bfcf1 3.12.0a4+ ef7c2bf 1.21x faster * 1.01x faster
2023-01-29 python c4170c36b0 3.12.0a4+ c4170c3 1.21x faster * 1.01x faster
2023-01-22 python d717be04dc 3.12.0a4+ d717be0 1.21x faster * 1.00x faster
2023-01-16 python 7b14c2ef19 3.12.0a4+ 7b14c2e 1.21x faster * 1.00x faster
2023-01-08 python e47b13934b 3.12.0a3+ e47b139 1.22x faster * 1.00x faster
2023-01-01 python edfbf56f4c 3.12.0a3+ edfbf56 1.21x faster * 1.00x faster
2022-12-26 python ad3c99e521 3.12.0a3+ ad3c99e 1.21x faster * 1.00x faster
2022-12-19 python 702a5bc463 3.12.0a3+ 702a5bc 1.23x faster * 1.02x faster
2022-12-11 python 70be5e42f6 3.12.0a3+ 70be5e4 1.24x faster * 1.02x faster
2022-12-05 python e3a3863cb9 3.12.0a2+ e3a3863 1.18x faster * 1.04x slower
2022-11-28 python 594de165bf 3.12.0a2+ 594de16 1.19x faster * 1.03x slower
2022-11-21 python cdde29dde9 3.12.0a2+ cdde29d 1.19x faster * 1.03x slower
2023-02-07 python 878ead1ac1 3.11.2 878ead1 1.20x faster * 1.00x slower
2022-12-06 python a7a450f84a 3.11.1 a7a450f 1.22x faster * 1.00x faster
2022-10-24 python deaf509e8f 3.11.0 deaf509 1.22x faster *
2022-09-11 python ed7c3ff156 3.11.0rc2 ed7c3ff 1.22x faster * 1.00x faster
2023-02-07 python aad5f6a891 3.10.10 aad5f6a 1.02x slower * 1.22x slower
2022-03-23 python v3.10.4 3.10.4 9d38120 1.22x slower *

There is also a complete list of published results (and legacy results).