Python 3.11 vs Python 3.12 – тестирование производительности
Python 3.11 vs Python 3.12
В этом месяце опубликована новая версия языка программирования Python 3.12. В этой статье кратко описаны результаты тестирования производительности Python 3.12 по сравнению с Python 3.11. Всего был проведен 91 различный тест производительности на компьютерах с процессорами AMD Ryzen 7000-й серии и процессорами Intel Core 13-го поколения для настольных ПК, ноутбуков или мини-ПК. Все тесты проводились на компьютерах с Windows 11 с использованием библиотеки pyperformance 1.0.9 в Python 3.11.6 и Python 3.12.0 (обе 64-разрядные версии).
AMD Ryzen 7000-й серии для настольных ПК
В первой части тестирования участвовал настольный компьютер с процессором AMD Ryzen 9 7900, оперативной памятью DDR5 и накопителем M.2 PCIe Gen4 NVMe. После выполнения 91 теста, оказалось, что на этом устройстве Python 3.12 работает 1.01x медленнее чем Python 3.11.
Для сравнения, производительность Python 3.11 была 1.11x быстрее по сравнению с Python 3.10 в подобном тесте на том же оборудовании.
Анализ измерений показывает, что Python 3.12 имеет лучшие результаты по производительности по сравнению с Python 3.11 в следующих тестах: typing_runtime_protocols (2.99x быстрее), generators (1.55x быстрее), asyncio_tcp (1.49x быстрее). Однако можно заметить падение производительности в некоторых тестах, особенно в coverage (1.69x медленнее), unpack_sequence (1.52x медленнее), async_generators (1.35x медленнее).
Процессор Intel Core 13-го поколения для мобильных ПК
Во второй части тестирования участвовал мини-ПК с процессором Intel Core i3-1315U (который также используется в ноутбуках), оперативной памятью DDR4 и накопителем M.2 PCIe Gen4 NVMe. В отличии от предыдущей части с процессором от AMD, результат выполнения 91 теста показывает преимущества новой версии Python - версия 3.12 работает 1.05x быстрее чем версия 3.11.
Для сравнения, производительность Python 3.11 была 1.09x быстрее по сравнению с Python 3.10 в подобном тесте на том же оборудовании.
Можно дополнительно отметить, что Python 3.12 имеет лучшие результаты по производительности по сравнению с Python 3.11 в следующих тестах: typing_runtime_protocols (3.25x быстрее), generators (1.49x быстрее), asyncio_tcp_ssl (1.44x быстрее). Однако необходимо отметить падение производительности в некоторых тестах, особенно в coverage (1.63x медленнее), pathlib (1.36x медленнее), async_generators (1.29x медленнее).