Назад
Бенчмарк Python 3.15: незначне підвищення у порівнянні з 3.14, явне покращення JIT
SiTech AI Team2 хв читання

Бенчмарк Python 3.15: незначне підвищення у порівнянні з 3.14, явне покращення JIT

Неформальний бенчмарк Мігеля Ґрінберга порівнює Python 3.15.0rc3 із версіями до 3.10. Приріст продуктивності проти 3.14 невеликий, хоча експериментальний JIT дає прискорення, а free-threading виділяється в багатопотокових тестах.

Новий неформальний бенчмарк, який провів інженер програмного забезпечення Мігель Ґрінберг, порівнює Python 3.15 із попередніми версіями аж до 3.10 і виявляє, що майбутня версія лише трохи швидша за попередницю. Найпомітніше покращення приносить експериментальний JIT-компілятор, а free-threading демонструє свою цінність у багатопотокових навантаженнях.

Параметри бенчмарку

Тести проводилися на ноутбуку з Linux і процесором Intel Core i5. Використовувалися дві програми: fibo.py, яка рекурсивно обчислює числа Фібоначчі, і bubble.py, яка сортує 10 000 випадкових чисел за допомогою циклів for. Кожну програму запускали в однопотоковому та чотирипотоковому режимах, а тривалості обчислювали як середнє значення трьох запусків. Тестова матриця також включала PyPy 3.12, Node.js 26.3 і Rust 1.97 для контексту екосистеми, додатково — збірки JIT і free-threading для CPython 3.13 та новіших версій. Автор перевірив версію 3.15.0rc3 release candidate; на момент написання до офіційного випуску 3.15 залишалося ще кілька днів.

Однопотокові результати

Python 3.15 виконав тест Фібоначчі за 6,94 с, трохи випередивши 3.14, якому знадобилося 7,17 с, і був значно кращим за 3.10, якому знадобилося 15,94 с. Тест Bubble sort показав схожу картину: 3.15 — 1,97 с, а 3.14 — 2,06 с. В обох тестах лише Python 3.11 і 3.14 дали значне підвищення порівняно з їхніми безпосередніми попередниками, а деякі випуски показали навіть невелику регресію. PyPy 3.12 знову залишився найшвидшою реалізацією Python: у тесті Фібоначчі він був у 5,54 рази швидшим за 3.15, а в загальних результатах Rust лідирував у 77,24 рази.

JIT-компілятор Python 3.15 обіграв стандартний інтерпретатор тієї ж версії у тесті Фібоначчі у 1,20 раза, а в сортуванні бульбашкою — у 1,28 раза. Це протилежно результатам попередніх років, коли JIT не перевершував стандартну збірку. Збірки free-threading в однопотоковій роботі працювали приблизно на рівні стандартного інтерпретатора.

Багатопотокові результати

З чотирма потоками стандартний інтерпретатор майже не змінюється, оскільки GIL перешкоджає справжньому паралельному виконанню. Збірка free-threading у Python 3.15 пройшла тест Фібоначчі приблизно у 4,5 рази швидше за стандартний інтерпретатор, що схоже на показник 3.14, а в сортуванні бульбашкою була ще швидшою. Збірка JIT зберегла подібну перевагу над стандартним інтерпретатором і за багатьох потоків, що, на думку автора, є новим для 3.15.

Висновки

Автор вважає покращення продуктивності Python 3.15 порівняно з 3.14 досить незначним, а деякі тести показують невелику регресію. Єдина явна перевага — у JIT, який ще залишається експериментальним і не рекомендований для продакшену. Автор планує залишити промислові проєкти на 3.14, а Python 3.15 використовувати як щоденний інтерпретатор для таких нових можливостей, як розгортання comprehensions подібно до JavaScript і lazy imports.

Джерела: blog.miguelgrinberg.com

SSiTech

SiTech — веброзробка з підтримкою AI

Створюємо швидкі та сучасні сайти й інтегруємо AI у бізнес-процеси. Маєте проєкт чи запитання? Із задоволенням допоможемо.