Производительность Python 3.14.8 и Python 3.15.0 сравнивалась на компьютерах с процессорами AMD Ryzen 7000-й серии и процессорами Intel Core 13-го поколения для настольных ПК, ноутбуков или мини-ПК. В обоих случаях использовались 64-разрядные сборки Python под Windows 11. Тестирование проводилось с помощью набора pyperformance 1.14.0 и измерительного инструмента pyperf 2.10.0.

Интерпретация результатов

Каждое значение времени в таблицах представляет собой среднее арифметическое средних времён данного теста в повторных измерительных сессиях. Всем сессиям присваивается одинаковый вес. Значения калибровки и прогрева исключены. Коэффициенты ускорения рассчитываются по усреднённым временам, а не путём усреднения ранее полученных коэффициентов. Таким образом, для каждого теста представлен один сводный результат.

Меньшее время означает лучший результат. За основу сравнения принят Python 3.14. Результат в 1,50 раза быстрее означает, что Python 3.15 требуется около двух третей времени эталонной версии, то есть на 33,33% меньше. Результат в 1,20 раза медленнее означает увеличение времени на 20%. Столбец «Изменение времени» показывает процентное изменение относительно Python 3.14. Отрицательные значения означают сокращение времени выполнения.

Общий результат — это среднее геометрическое коэффициентов ускорения отдельных тестов. Каждый тест, доступный для обеих версий, имеет одинаковый вес независимо от времени выполнения. Этот показатель характеризует набор тестов, а не прогнозирует ускорение приложения в целом. Время округлено для удобства чтения; все расчёты выполнены по неокруглённым значениям.

Синий цвет означает сокращение времени выполнения, а красный — его увеличение. Ускорения и замедления с коэффициентом не менее 1,10× выделены полужирным шрифтом. Символ † отмечает результаты с высокой вариативностью или сменой направления различия между сессиями. Величина таких изменений и небольшие отличия от эталонного результата требуют осторожной интерпретации. Таблицы содержат усреднённые наблюдения и не подтверждают статистическую значимость каждого различия.

Общая производительность Python 3.15 относительно Python 3.14
Компьютер Тесты для обеих версий Среднее геометрическое ускорения Соответствующее изменение времени
AMD Ryzen 9 7900 122 1,451x быстрее -31,10%
Intel Core i3-1315U 118 1,451x быстрее -31,10%

Одинаковое значение 1,451× в обеих строках получается после округления. Рассчитанные значения составляют примерно 1,451413092× для AMD и 1,451321030× для Intel. Наборы содержат соответственно 122 и 118 тестов и поэтому не идентичны. Этот результат не означает одинакового выигрыша для всех приложений или преимущества какого-либо производителя процессоров.

Python 3.15 быстрее в большинстве исследованных задач. Среднее геометрическое коэффициентов ускорения составляет примерно 1,45× на обоих компьютерах. Наибольший прирост наблюдается в тестах кодирования Ascii85, Base32 и Base85. После исключения этих шести результатов с особенно большим ускорением показатель для оставшейся части набора составляет около 1,20×. Некоторые тесты Base16 и регулярных выражений выполняются медленнее, поэтому выигрыш зависит от характера нагрузки.

Настольный компьютер с AMD Ryzen 9 7900

Настольный компьютер AMD оснащён процессором Ryzen 9 7900, оперативной памятью DDR5 и накопителем M.2 PCIe Gen4 NVMe.

На этом компьютере доступны результаты 122 тестов для обеих версий. Среднее геометрическое коэффициентов ускорения Python 3.15 составляет 1,451×. В нормированном сводном показателе это соответствует сокращению времени примерно на 31,1%. Медиана коэффициентов ускорения составляет 1,184×, что показывает влияние небольшого числа особенно крупных ускорений на общий результат.

Наибольшее ускорение наблюдается в тестах base32_large (в 134,748 раза быстрее), ascii85_large (в 68,675 раза быстрее), base85_large (в 63,446 раза быстрее). Варианты этих тестов кодирования для малых объёмов данных также существенно ускоряются.

Наибольшие отчётливые замедления в усреднённых результатах наблюдаются в тестах base16_large (в 1,223 раза медленнее), base16_small (в 1,222 раза медленнее), regex_effbot (в 1,222 раза медленнее). Эти замедления особенно важны для приложений, в которых такие операции выполняются часто.

Результаты AMD в целом были согласованными при повторных измерениях. Время запуска без модуля site остаётся близким к результату эталонной версии, а тест logging_silent включает измерение с высокой вариативностью. Поэтому при интерпретации большее значение имеют крупные, воспроизводимые ускорения, чем небольшие различия или точная величина изменений в этих двух тестах.

AMD Ryzen 9 7900 — настольный компьютер: усреднённое время выполнения
Тест Python 3.14.8 Python 3.15.0 Изменение времени
2to3 229,3 ms 207,6 ms (1,105x быстрее) -9,47%
ascii85_large 797,9 ms 11,62 ms (68,675x быстрее) -98,54%
ascii85_small 14,88 ms 0,3875 ms (38,394x быстрее) -97,40%
async_generators 269,8 ms 237,9 ms (1,134x быстрее) -11,82%
async_tree_cpu_io_mixed 420,2 ms 393,4 ms (1,068x быстрее) -6,38%
async_tree_cpu_io_mixed_tg 404,4 ms 380,8 ms (1,062x быстрее) -5,83%
async_tree_eager 124,2 ms 98,19 ms (1,265x быстрее) -20,94%
async_tree_eager_cpu_io_mixed 349 ms 322,5 ms (1,082x быстрее) -7,60%
async_tree_eager_cpu_io_mixed_tg 365,3 ms 342,9 ms (1,065x быстрее) -6,12%
async_tree_eager_io 652,8 ms 588,9 ms (1,108x быстрее) -9,78%
async_tree_eager_io_tg 610,1 ms 558,3 ms (1,093x быстрее) -8,49%
async_tree_eager_memoization 190,5 ms 170,7 ms (1,116x быстрее) -10,40%
async_tree_eager_memoization_tg 243,9 ms 224 ms (1,089x быстрее) -8,17%
async_tree_eager_tg 184,9 ms 166,3 ms (1,112x быстрее) -10,07%
async_tree_io 617,5 ms 558,8 ms (1,105x быстрее) -9,50%
async_tree_io_tg 581,5 ms 511,6 ms (1,137x быстрее) -12,02%
async_tree_memoization 308,5 ms 278 ms (1,109x быстрее) -9,86%
async_tree_memoization_tg 267,1 ms 240,1 ms (1,112x быстрее) -10,11%
async_tree_none 248,5 ms 225,8 ms (1,101x быстрее) -9,15%
async_tree_none_tg 215,4 ms 194,4 ms (1,108x быстрее) -9,73%
asyncio_tcp 458,4 ms 435,2 ms (1,053x быстрее) -5,05%
asyncio_tcp_ssl 1,258 s 1,219 s (1,031x быстрее) -3,05%
asyncio_websockets 141,6 ms 125,6 ms (1,128x быстрее) -11,33%
base16_large 4,714 ms 5,767 ms (1,223x медленнее) +22,34%
base16_small 252,3 µs 308,3 µs (1,222x медленнее) +22,20%
base32_large 327,6 ms 2,431 ms (134,748x быстрее) -99,26%
base32_small 6,227 ms 0,163 ms (38,200x быстрее) -97,38%
base64_large 6,746 ms 1,852 ms (3,643x быстрее) -72,55%
base64_small 219,5 µs 169,2 µs (1,297x быстрее) -22,91%
base85_large 272,4 ms 4,293 ms (63,446x быстрее) -98,42%
base85_small 4,864 ms 0,1505 ms (32,313x быстрее) -96,91%
bench_mp_pool 126 ms 112 ms (1,125x быстрее) -11,08%
bench_thread_pool 738,9 µs 658,8 µs (1,122x быстрее) -10,84%
bpe_tokeniser 2,968 s 2,318 s (1,280x быстрее) -21,90%
chameleon 9,954 ms 8,428 ms (1,181x быстрее) -15,33%
chaos 44,06 ms 31,3 ms (1,408x быстрее) -28,98%
comprehensions 12,2 µs 8,117 µs (1,503x быстрее) -33,47%
connected_components 388,3 ms 365,8 ms (1,061x быстрее) -5,78%
coroutines 17,05 ms 12,87 ms (1,325x быстрее) -24,50%
coverage 52,53 ms 48,64 ms (1,080x быстрее) -7,39%
create_gc_cycles 1,03 ms 0,8892 ms (1,158x быстрее) -13,66%
crypto_pyaes 50,48 ms 39,17 ms (1,289x быстрее) -22,41%
dask 720,2 ms 687,5 ms (1,048x быстрее) -4,54%
deepcopy 174,8 µs 129,9 µs (1,346x быстрее) -25,69%
deepcopy_memo 19,74 µs 14,64 µs (1,349x быстрее) -25,86%
deepcopy_reduce 1,899 µs 1,541 µs (1,232x быстрее) -18,83%
deltablue 2,508 ms 1,669 ms (1,503x быстрее) -33,46%
django_template 24,56 ms 20,47 ms (1,200x быстрее) -16,67%
docutils 1,425 s 1,272 s (1,120x быстрее) -10,74%
dulwich_log 48,84 ms 44,74 ms (1,092x быстрее) -8,40%
fannkuch 280,5 ms 208,5 ms (1,345x быстрее) -25,65%
fastapi_http 454,7 ms 399,9 ms (1,137x быстрее) -12,06%
float 57,28 ms 44,02 ms (1,301x быстрее) -23,16%
gc_traversal 1,807 ms 1,682 ms (1,074x быстрее) -6,89%
generators 23,32 ms 16,29 ms (1,431x быстрее) -30,14%
go 89,44 ms 59,34 ms (1,507x быстрее) -33,65%
hexiom 4,914 ms 3,178 ms (1,546x быстрее) -35,32%
html5lib 33,73 ms 28,44 ms (1,186x быстрее) -15,68%
json_dumps 6,731 ms 4,862 ms (1,384x быстрее) -27,77%
json_loads 14,53 µs 13,06 µs (1,113x быстрее) -10,15%
k_core 1,708 s 1,616 s (1,057x быстрее) -5,39%
logging_format 6,286 µs 5,081 µs (1,237x быстрее) -19,18%
logging_silent † 75,05 ns 51,26 ns (1,464x быстрее †) -31,69%
logging_simple 5,845 µs 4,72 µs (1,238x быстрее) -19,25%
mako 7,97 ms 6,643 ms (1,200x быстрее) -16,65%
many_optionals 386,7 µs 297,7 µs (1,299x быстрее) -23,02%
mdp 829,3 ms 661,3 ms (1,254x быстрее) -20,25%
meteor_contest 69,78 ms 60,92 ms (1,145x быстрее) -12,70%
nbody 89,91 ms 62,13 ms (1,447x быстрее) -30,89%
nqueens 65,02 ms 43,38 ms (1,499x быстрее) -33,28%
pathlib 232,9 ms 228,7 ms (1,018x быстрее) -1,80%
pickle 7,953 µs 7,807 µs (1,019x быстрее) -1,83%
pickle_dict 20,5 µs 17,69 µs (1,159x быстрее) -13,73%
pickle_list 3,041 µs 2,82 µs (1,078x быстрее) -7,26%
pickle_pure_python 217,3 µs 175,2 µs (1,240x быстрее) -19,38%
pidigits 129,7 ms 128,8 ms (1,007x быстрее) -0,69%
pprint_pformat 1,034 s 0,8316 s (1,243x быстрее) -19,55%
pprint_safe_repr 502,5 ms 413,3 ms (1,216x быстрее) -17,76%
pyflate 323 ms 239,9 ms (1,346x быстрее) -25,73%
python_startup 35,18 ms 34,36 ms (1,024x быстрее) -2,34%
python_startup_no_site † 29,09 ms 29,23 ms (1,005x медленнее †) +0,47%
raytrace 192,8 ms 144 ms (1,339x быстрее) -25,34%
regex_compile 75,55 ms 54,3 ms (1,391x быстрее) -28,12%
regex_dna 107,9 ms 118,7 ms (1,100x медленнее) +10,00%
regex_effbot 1,588 ms 1,94 ms (1,222x медленнее) +22,17%
regex_v8 14,92 ms 15,13 ms (1,014x медленнее) +1,38%
richards 31,37 ms 22,75 ms (1,379x быстрее) -27,47%
richards_super 35,52 ms 26,14 ms (1,359x быстрее) -26,42%
scimark_fft 217,5 ms 163,4 ms (1,331x быстрее) -24,89%
scimark_lu 77,23 ms 54,56 ms (1,416x быстрее) -29,35%
scimark_monte_carlo 48,66 ms 36,72 ms (1,325x быстрее) -24,54%
scimark_sor 93,32 ms 62,58 ms (1,491x быстрее) -32,94%
scimark_sparse_mat_mult 3,372 ms 2,504 ms (1,347x быстрее) -25,76%
shortest_path 397,5 ms 372,7 ms (1,067x быстрее) -6,24%
spectral_norm 77,96 ms 52,58 ms (1,483x быстрее) -32,55%
sphinx 617,7 ms 552,5 ms (1,118x быстрее) -10,56%
sqlalchemy_declarative 61,12 ms 54,38 ms (1,124x быстрее) -11,02%
sqlalchemy_imperative 6,798 ms 5,959 ms (1,141x быстрее) -12,35%
sqlglot_v2_normalize 71,32 ms 58,48 ms (1,220x быстрее) -18,01%
sqlglot_v2_optimize 33,61 ms 27,93 ms (1,203x быстрее) -16,88%
sqlglot_v2_parse 869,3 µs 621,4 µs (1,399x быстрее) -28,52%
sqlglot_v2_transpile 1,05 ms 0,7834 ms (1,340x быстрее) -25,39%
sqlite_synth 1,523 µs 1,37 µs (1,112x быстрее) -10,04%
subparsers 6,756 ms 5,747 ms (1,176x быстрее) -14,94%
sympy_expand 258,3 ms 220 ms (1,174x быстрее) -14,84%
sympy_integrate 11,35 ms 9,662 ms (1,175x быстрее) -14,90%
sympy_str 149,4 ms 124,8 ms (1,198x быстрее) -16,50%
sympy_sum 78,46 ms 66,41 ms (1,181x быстрее) -15,35%
telco 4,94 ms 4,111 ms (1,202x быстрее) -16,78%
tomli_loads 1,585 s 1,023 s (1,549x быстрее) -35,45%
tornado_http 99,88 ms 93,48 ms (1,068x быстрее) -6,41%
typing_runtime_protocols 107 µs 88,07 µs (1,215x быстрее) -17,69%
unpack_sequence 48,21 ns 31,01 ns (1,555x быстрее) -35,68%
unpickle 8,886 µs 8,827 µs (1,007x быстрее) -0,67%
unpickle_list 2,806 µs 2,865 µs (1,021x медленнее) +2,11%
unpickle_pure_python 157,6 µs 116,6 µs (1,352x быстрее) -26,01%
urlsafe_base64_small 340,4 µs 206,1 µs (1,651x быстрее) -39,45%
xdsl_constant_fold 24,33 ms 20,97 ms (1,160x быстрее) -13,81%
xml_etree_generate 59,89 ms 50,36 ms (1,189x быстрее) -15,92%
xml_etree_iterparse 54,9 ms 47,99 ms (1,144x быстрее) -12,59%
xml_etree_parse 80,08 ms 77,91 ms (1,028x быстрее) -2,71%
xml_etree_process 42,23 ms 34,81 ms (1,213x быстрее) -17,58%
Результат (среднее геометрическое) — 1,451x быстрее -31,10%

Единицы измерения: s — секунды; ms — миллисекунды; µs — микросекунды; ns — наносекунды. В каждой строке оба времени выражены в одной единице. Символ † отмечает измерения, требующие дополнительной осторожности.

Производительность по группам тестов

Следующая таблица обобщает результаты тестов с указанным тегом в наборе pyperformance. Группы могут пересекаться и не охватывают все тесты. Группа math содержит только три теста и не представляет все численные вычисления в наборе.

AMD Ryzen 9 7900 — настольный компьютер: среднее геометрическое по тегам
Группа (тег) Тесты для обеих версий Python 3.15 относительно Python 3.14 Соответствующее изменение времени
apps 7 1,130x быстрее -11,52%
asyncio 21 1,113x быстрее -10,13%
math 3 1,238x быстрее -19,21%
regex 4 1,005x быстрее -0,52%
serialize 25 3,046x быстрее -67,17%
startup 2 1,010x быстрее -0,95%
template 2 1,200x быстрее -16,66%

Тесты с результатами только для Python 3.14, исключённые из сравнения: genshi_text, genshi_xml. Предоставленные данные не объясняют отсутствие этих результатов для Python 3.15.

Мини-ПК с Intel Core i3-1315U

Мини-ПК Intel оснащён процессором Core i3-1315U, оперативной памятью DDR4 и накопителем M.2 PCIe Gen4 NVMe. Модель i3-1315U — мобильный процессор, который также используется в ноутбуках.

На этом компьютере доступны результаты 118 тестов для обеих версий. Среднее геометрическое коэффициентов ускорения Python 3.15 составляет 1,451×. В нормированном сводном показателе это соответствует сокращению времени примерно на 31,1%. Медиана коэффициентов ускорения составляет 1,166×, что показывает влияние небольшого числа особенно крупных ускорений на общий результат.

Наибольшее ускорение наблюдается в тестах base32_large (в 142,255 раза быстрее), base85_large (в 62,619 раза быстрее), ascii85_large (в 56,825 раза быстрее). Варианты этих тестов кодирования для малых объёмов данных также существенно ускоряются.

Наибольшие отчётливые замедления в усреднённых результатах наблюдаются в тестах base16_small (в 1,241 раза медленнее), base16_large (в 1,158 раза медленнее), regex_effbot (в 1,133 раза медленнее). Эти замедления особенно важны для приложений, в которых такие операции выполняются часто.

Измерения на Intel показали более высокую вариативность. В частности, величина ускорения в тестах pathlib, sphinx, scimark_sor, scimark_sparse_mat_mult и spectral_norm зависела от измерительной сессии. Некоторые измерения pathlib и пула потоков содержат необычно большое время выполнения. Усреднение даёт сводную картину, но отдельные значения не являются точным прогнозом для другого компьютера.

Intel Core i3-1315U — мини-ПК: усреднённое время выполнения
Тест Python 3.14.8 Python 3.15.0 Изменение времени
2to3 277,1 ms 247,6 ms (1,119x быстрее) -10,65%
ascii85_large 828,8 ms 14,58 ms (56,825x быстрее) -98,24%
ascii85_small 15,57 ms 0,4626 ms (33,666x быстрее) -97,03%
async_generators 280,8 ms 230,4 ms (1,219x быстрее) -17,96%
async_tree_cpu_io_mixed 435,1 ms 397,7 ms (1,094x быстрее) -8,59%
async_tree_cpu_io_mixed_tg 423,2 ms 411,9 ms (1,027x быстрее) -2,66%
async_tree_eager 118,4 ms 104,9 ms (1,129x быстрее) -11,42%
async_tree_eager_cpu_io_mixed 382,7 ms 360,1 ms (1,063x быстрее) -5,90%
async_tree_eager_cpu_io_mixed_tg 383,3 ms 362 ms (1,059x быстрее) -5,56%
async_tree_eager_io 572,6 ms 513,3 ms (1,116x быстрее) -10,36%
async_tree_eager_io_tg 561,1 ms 509 ms (1,102x быстрее) -9,28%
async_tree_eager_memoization 216 ms 196,2 ms (1,101x быстрее) -9,16%
async_tree_eager_memoization_tg 247,5 ms 227,3 ms (1,089x быстрее) -8,19%
async_tree_eager_tg 191,6 ms 170,4 ms (1,124x быстрее) -11,07%
async_tree_io 593,4 ms 517,4 ms (1,147x быстрее) -12,81%
async_tree_io_tg 567,9 ms 495,3 ms (1,147x быстрее) -12,78%
async_tree_memoization 306,3 ms 274,5 ms (1,116x быстрее) -10,38%
async_tree_memoization_tg 285,9 ms 252,9 ms (1,130x быстрее) -11,54%
async_tree_none 253,3 ms 220,6 ms (1,148x быстрее) -12,92%
async_tree_none_tg 228,9 ms 203,7 ms (1,123x быстрее) -10,98%
asyncio_tcp 582,6 ms 539 ms (1,081x быстрее) -7,48%
asyncio_tcp_ssl 1,537 s 1,527 s (1,007x быстрее) -0,66%
asyncio_websockets 181,7 ms 157,8 ms (1,151x быстрее) -13,15%
base16_large 6,161 ms 7,132 ms (1,158x медленнее) +15,75%
base16_small 298,5 µs 370,3 µs (1,241x медленнее) +24,07%
base32_large 360,9 ms 2,537 ms (142,255x быстрее) -99,30%
base32_small 7,102 ms 0,1753 ms (40,509x быстрее) -97,53%
base64_large 8,03 ms 1,869 ms (4,297x быстрее) -76,73%
base64_small 266,4 µs 191,1 µs (1,394x быстрее) -28,27%
base85_large 298,1 ms 4,761 ms (62,619x быстрее) -98,40%
base85_small 5,369 ms 0,1747 ms (30,739x быстрее) -96,75%
bench_mp_pool 161,1 ms 142,6 ms (1,130x быстрее) -11,47%
bench_thread_pool † 1,083 ms 1,101 ms (1,017x медленнее †) +1,71%
bpe_tokeniser 3,575 s 2,782 s (1,285x быстрее) -22,19%
chameleon 11,36 ms 9,522 ms (1,193x быстрее) -16,18%
chaos 47,02 ms 35,8 ms (1,314x быстрее) -23,88%
comprehensions 13,38 µs 9,357 µs (1,430x быстрее) -30,09%
connected_components 366,4 ms 354,6 ms (1,033x быстрее) -3,22%
coroutines 16,6 ms 13,19 ms (1,258x быстрее) -20,53%
coverage 160,9 ms 123,6 ms (1,302x быстрее) -23,19%
create_gc_cycles 1,711 ms 1,428 ms (1,198x быстрее) -16,53%
crypto_pyaes 57,39 ms 45,55 ms (1,260x быстрее) -20,62%
deepcopy 206,9 µs 153,5 µs (1,348x быстрее) -25,81%
deepcopy_memo 20,81 µs 15,72 µs (1,323x быстрее) -24,44%
deepcopy_reduce 2,224 µs 1,71 µs (1,301x быстрее) -23,14%
deltablue 2,451 ms 1,839 ms (1,333x быстрее) -24,99%
django_template 28,24 ms 22,76 ms (1,241x быстрее) -19,42%
docutils 1,794 s 1,661 s (1,080x быстрее) -7,42%
fannkuch 309 ms 222,6 ms (1,388x быстрее) -27,96%
fastapi_http 351,1 ms 320,7 ms (1,095x быстрее) -8,64%
float 56,19 ms 45,04 ms (1,248x быстрее) -19,85%
gc_traversal 2,853 ms 2,545 ms (1,121x быстрее) -10,81%
generators 25,72 ms 16,94 ms (1,518x быстрее) -34,11%
go 92,33 ms 67,09 ms (1,376x быстрее) -27,34%
hexiom 4,839 ms 3,443 ms (1,405x быстрее) -28,84%
html5lib 44,02 ms 38,9 ms (1,131x быстрее) -11,62%
json_dumps 7,362 ms 5,696 ms (1,292x быстрее) -22,63%
json_loads 17,18 µs 16,01 µs (1,073x быстрее) -6,82%
k_core 1,977 s 1,91 s (1,035x быстрее) -3,39%
logging_format 7,111 µs 5,871 µs (1,211x быстрее) -17,44%
logging_silent 65,46 ns 50,39 ns (1,299x быстрее) -23,02%
logging_simple 6,635 µs 5,423 µs (1,223x быстрее) -18,26%
mako 7,544 ms 6,543 ms (1,153x быстрее) -13,28%
many_optionals 585,5 µs 513,5 µs (1,140x быстрее) -12,30%
mdp 970,9 ms 767 ms (1,266x быстрее) -21,00%
meteor_contest 86,82 ms 75,98 ms (1,143x быстрее) -12,49%
nbody 82,94 ms 59,03 ms (1,405x быстрее) -28,83%
nqueens 73,7 ms 52,9 ms (1,393x быстрее) -28,22%
pathlib † 88,82 ms 77,87 ms (1,141x быстрее †) -12,33%
pickle 9,156 µs 8,568 µs (1,069x быстрее) -6,41%
pickle_dict 24,76 µs 20,2 µs (1,226x быстрее) -18,43%
pickle_list 4,1 µs 3,752 µs (1,093x быстрее) -8,48%
pickle_pure_python 246,7 µs 206 µs (1,198x быстрее) -16,50%
pidigits † 163,1 ms 163,7 ms (1,003x медленнее †) +0,34%
pprint_pformat 1,186 s 0,9441 s (1,257x быстрее) -20,42%
pprint_safe_repr 585,2 ms 476,1 ms (1,229x быстрее) -18,64%
pyflate 343,9 ms 267 ms (1,288x быстрее) -22,36%
python_startup 31,09 ms 30,31 ms (1,026x быстрее) -2,53%
python_startup_no_site † 23,24 ms 23,16 ms (1,003x быстрее †) -0,32%
raytrace 223,5 ms 164,2 ms (1,361x быстрее) -26,54%
regex_compile 94,27 ms 76,29 ms (1,236x быстрее) -19,07%
regex_dna 136,6 ms 135,9 ms (1,005x быстрее) -0,49%
regex_effbot 1,71 ms 1,937 ms (1,133x медленнее) +13,30%
regex_v8 † 16,61 ms 15,72 ms (1,057x быстрее †) -5,36%
richards 32,36 ms 24,82 ms (1,304x быстрее) -23,29%
richards_super 36,74 ms 28,57 ms (1,286x быстрее) -22,22%
scimark_fft 212,5 ms 158,1 ms (1,344x быстрее) -25,58%
scimark_lu 69,29 ms 52,02 ms (1,332x быстрее) -24,92%
scimark_monte_carlo 50,14 ms 36,87 ms (1,360x быстрее) -26,47%
scimark_sor † 103,8 ms 57,98 ms (1,790x быстрее †) -44,12%
scimark_sparse_mat_mult † 3,352 ms 2,368 ms (1,415x быстрее †) -29,35%
shortest_path 403,9 ms 382 ms (1,057x быстрее) -5,40%
spectral_norm † 77,37 ms 50,15 ms (1,543x быстрее †) -35,18%
sphinx † 812,6 ms 725,8 ms (1,120x быстрее †) -10,69%
sqlglot_v2_normalize 85,23 ms 68,7 ms (1,241x быстрее) -19,39%
sqlglot_v2_optimize 40,98 ms 34,54 ms (1,186x быстрее) -15,71%
sqlglot_v2_parse 949,5 µs 737,1 µs (1,288x быстрее) -22,37%
sqlglot_v2_transpile 1,18 ms 0,9215 ms (1,281x быстрее) -21,92%
sqlite_synth 1,832 µs 1,704 µs (1,075x быстрее) -6,96%
subparsers 7,632 ms 6,672 ms (1,144x быстрее) -12,57%
sympy_expand 337,3 ms 290,4 ms (1,162x быстрее) -13,93%
sympy_integrate 14,24 ms 12,71 ms (1,120x быстрее) -10,72%
sympy_str 196,8 ms 171,8 ms (1,145x быстрее) -12,67%
sympy_sum 100,9 ms 88,9 ms (1,135x быстрее) -11,88%
telco 5,451 ms 4,658 ms (1,170x быстрее) -14,55%
tomli_loads 1,679 s 1,096 s (1,532x быстрее) -34,74%
tornado_http 105,5 ms 102,7 ms (1,027x быстрее) -2,61%
typing_runtime_protocols 127,7 µs 110,8 µs (1,153x быстрее) -13,24%
unpack_sequence 37,45 ns 31,33 ns (1,195x быстрее) -16,32%
unpickle 9,764 µs 9,974 µs (1,022x медленнее) +2,15%
unpickle_list 3,154 µs 3,144 µs (1,003x быстрее) -0,31%
unpickle_pure_python 161,4 µs 123,3 µs (1,310x быстрее) -23,64%
urlsafe_base64_small 417,2 µs 235,3 µs (1,773x быстрее) -43,58%
xdsl_constant_fold 35,23 ms 31,16 ms (1,131x быстрее) -11,56%
xml_etree_generate 65,1 ms 56,4 ms (1,154x быстрее) -13,37%
xml_etree_iterparse 69,49 ms 61,14 ms (1,137x быстрее) -12,02%
xml_etree_parse 108,3 ms 103,5 ms (1,047x быстрее) -4,44%
xml_etree_process 46,24 ms 38,3 ms (1,207x быстрее) -17,17%
Результат (среднее геометрическое) — 1,451x быстрее -31,10%

Единицы измерения: s — секунды; ms — миллисекунды; µs — микросекунды; ns — наносекунды. В каждой строке оба времени выражены в одной единице. Символ † отмечает измерения, требующие дополнительной осторожности.

Производительность по группам тестов

Следующая таблица обобщает результаты тестов с указанным тегом в наборе pyperformance. Группы могут пересекаться и не охватывают все тесты. Группа math содержит только три теста и не представляет все численные вычисления в наборе.

Intel Core i3-1315U — мини-ПК: среднее геометрическое по тегам
Группа (тег) Тесты для обеих версий Python 3.15 относительно Python 3.14 Соответствующее изменение времени
apps 7 1,108x быстрее -9,77%
asyncio 21 1,114x быстрее -10,27%
math 3 1,204x быстрее -16,97%
regex 4 1,037x быстрее -3,60%
serialize 25 3,044x быстрее -67,15%
startup 2 1,015x быстрее -1,43%
template 2 1,196x быстрее -16,40%

Тесты с результатами только для Python 3.14, исключённые из сравнения: dask, genshi_text, genshi_xml, sqlalchemy_declarative, sqlalchemy_imperative. Предоставленные данные не объясняют отсутствие этих результатов для Python 3.15.

Ускорение операций кодирования

Наибольшие изменения образуют отчётливую закономерность. Усреднённый результат base32_large показывает ускорение примерно в 135 раз на AMD и в 142 раза на Intel. Тесты Ascii85 и Base85 для больших объёмов данных ускоряются примерно в 57–69 раз, а соответствующие тесты для малых объёмов — примерно в 31–41 раз. Это специализированные операции с гораздо большим ускорением, чем у большинства остальных тестов.

Эта закономерность согласуется с описанием изменений в Python 3.15: реализации Base32 и Ascii85/Base85 переписаны на C, а Base64 также получил оптимизации. Эти изменения правдоподобно объясняют наблюдаемое ускорение, хотя измерения не позволяют отделить влияние каждого изменения в коде. Тесты измеряют время выполнения и не подтверждают уменьшение потребления памяти.

Влияние особенно крупных ускорений кодирования на общий результат
Выбор тестов Ускорение на AMD Ускорение на Intel
Все тесты для обеих версий 1,451x быстрее 1,451x быстрее
Без шести тестов Ascii85 / Base32 / Base85 1,203x быстрее 1,197x быстрее
Медиана ускорения отдельных тестов 1,184x быстрее 1,166x быстрее

После исключения этих шести тестов остаётся 116 сопоставимых тестов на AMD и 112 на Intel. Средние геометрические коэффициентов ускорения составляют соответственно 1,203× и 1,197×. В таком нормированном сводном показателе это соответствует сокращению времени примерно на 17%. Это полезный дополнительный ориентир для приложений, которые редко используют Base32 или Base85.

Значение результатов для производительности приложений

Группа тестов с тегом apps показывает ускорение примерно в 1,13 раза на AMD и в 1,11 раза на Intel. Рендеринг шаблонов ускоряется примерно в 1,20 раза на обоих компьютерах. Результаты указывают на заметный выигрыш в некоторых задачах, выполняемых преимущественно на Python. Одновременно они показывают, почему средний показатель 1,45× нельзя напрямую переносить на каждое приложение.

Производительность кодирования изменяется неодинаково: крупные ускорения Base32 и Base85 сочетаются с более медленными операциями Base16. Аналогично группа регулярных выражений показывает лишь небольшое общее ускорение, тогда как regex_effbot выполняется медленнее на обоих компьютерах, а regex_dna — на AMD. Среднее время запуска остаётся близким к эталонному результату. Практический эффект зависит от операций, выполняемых приложением.

Официальная документация Python также описывает интерпретатор, использующий хвостовые вызовы и применяемый в официальных 64-разрядных выпусках для Windows. В метаданных исследованных версий указаны разные идентификаторы компилятора. Сравнение относится к полным сборкам интерпретатора, поэтому отдельные ускорения нельзя приписать исключительно JIT, компилятору или конкретному изменению интерпретатора.

Оба компьютера показывают почти одинаковый результат для полного набора, но различаются оборудованием и числом тестов, доступных для обеих версий. Это не означает большего выигрыша у какого-либо производителя процессоров. Оценка конкретного приложения требует измерений с характерными входными данными и фактически используемыми зависимостями, а также проверки совместимости.

Примечания к измерениям

Для каждого теста в каждой сессии использовалось 20 рабочих процессов. Для большинства тестов сохранено 60 значений времени, а для каждого теста запуска — 200. При расчёте сводного времени средним значениям отдельных сессий присваивается одинаковый вес. Выбросы сохранены в данных, а тесты без результата для одной из версий исключены вместо присвоения им предполагаемого значения.

Символ † используется, если коэффициент сравнения меняется между сессиями более чем на 10%, среднее ускорение сменяется замедлением или наоборот либо коэффициент вариации набора измерений превышает 25%. Коэффициент вариации — это отношение стандартного отклонения к среднему, выраженное в процентах. Это описательная отметка, принятая для данной статьи, а не формальный тест статистической значимости. Она указывает на средние значения, величина которых, а при небольших различиях и направление изменения, менее надёжны.