Гвидо ван Россум, создатель языка программирования Python, в своём докладе на конференции Python Language Summit рассказал о планах по оптимизации производительности CPython. К версии 3.11, которая ожидается в 2022 году, разработчики надеются добиться увеличения производительности в два раза. Проектом по оптимизации CPython занимается небольшая команда разработчиков из компании Microsoft, в которую недавно перешёл на работу Гвидо.
При реализации проекта разработчики намерены придерживаться ряда ограничений, таких как сохранение полной совместимости на уровне ABI и кода, а также недопустимость повышения производительности за счёт замедления в пограничных случаях. Из составных частей, которые можно будет изменить для повышения производительности отмечаются байткод, размещение данных в памяти, компилятор и интерпретатор.
Наработки проекта публикуются в отдельном репозитории faster-cpython. Один из участников проекта, ранее занимавшийся разработкой JIT-компилятра HotPy для CPython, опубликовал план, в соответствии с которым считает реалистичным поднять производительность в пять раз и добиться этого результата в выпуске Python 3.13. Проект разделён на четыре стадии:
- В Python 3.10 планируется реализовать оптимизации в интерпретаторе, связанные с адаптацией процесса интерпретации к типам и значениям в процессе выполнения.
- В выпуске Python 3.11 ожидается внесение улучшений в runtime и ключевые объекты, а также включение множества мелких специализированных оптимизаций, таких как ускорение бинарных операторов и работы с целыми значениями, умещающимися в одно машинное слово, ускорение вызова и возврата из функций, снижение накладных расходов при работе с памятью и при обработке исключений.
- В Python 3.12 появится простой JIT-компилятор, применяемый для небольшой части специализированного кода.
- В Python 3.13 будут добавлены новые возможности генерации машинного кода во время выполнения и расширено применение JIT-компилятора.