Языковой саммит Создатель Python Гвидо ван Россум на этой неделе сказал участникам Language Summit, что надеется удвоить производительность в версии 3.11.

Язык программирования относительно медленный в реализации CPython по умолчанию, хотя есть много способы сделать это быстрее включая ориентированные на производительность альтернативы, такие как PyPy. Исторически Ван Россум казался безразличным к производительности Python, отдавая предпочтение простоте компилятора, который менее оптимизирован.

Слайды с вершины сейчас опубликовано [PDF] предложить изменение взглядов. «На пенсии мне стало скучно сидеть дома, — сказал он. «Я подал заявку в Microsoft и был принят на работу. Мне предоставили свободу выбора проекта. Я решил вернуться к своим корням. Это способ Microsoft вернуть Python».

Проект представляет собой «небольшую команду, финансируемую Microsoft», в которую входят разработчик Python Core и старший инженер-программист Microsoft Эрик Сноу и Марк Шеннон, инженер-исследователь в компании. Semmle, которая разрабатывает продукты для анализа защищенности кода. Семмле был частью GitHub с сентября 2019, так что это команда, полностью состоящая из Microsoft, хотя Ван Россум отметил, что она «может вырасти».

В проекте есть Репозиторий GitHub который включает в себя форк CPython, а также средство отслеживания ошибок для идей и инструментов для анализа производительности. По словам Ван Россума, «не будет долгоживущих форков / веток, неудивительно, что 6000 запросов на вытягивание строк», и все будет с открытым кодом.

Шеннон некоторое время работал над производительностью Python, в предыдущих проектах HotPy и HotPy (2) для своевременного компилятора для CPython.

У него есть свой Более быстрый CPython репозиторий, в котором он написал, что «мы хотим ускорить CPython в 5 раз в следующих четырех выпусках».

Читайте также:
На Windows 10 мы будем еще очень долго

Однако он отметил, что некоторые платформы, такие как iOS от Apple, не позволяют «генерацию кода времени выполнения», но считает, что даже в этих случаях возможно удвоение скорости.

Хотя Шеннон в конечном итоге предполагает JIT-компилятор, в его планах этого не будет до Python 3.12. Изменения для Python 3.11 будут основаны на «множестве настроек», таких как улучшенная структура памяти, улучшенная производительность для небольших целых чисел, более быстрые вызовы и возврат, а также обработка исключений с нулевыми накладными расходами.

Как отметил Ван Россум в своем выступлении, существует ряд ограничений, в том числе не нарушать стабильную совместимость с ABI (двоичный интерфейс приложения), поддерживать совместимость кода и не вызывать замедлений в крайних случаях. Он сказал, что многие вещи можно безопасно изменить, включая байт-код Python, структуру фрейма стека, компилятор и интерпретатор. Макет фрейма стека описывает, как данные, определяющие функцию, размещаются в памяти.

Заметки Ван Россума, кажется, хорошо согласуются с существующими идеями Шеннон. «В нашем будущем есть машинная генерация кода», — сказал он, и, как и Шеннон, считает 5-кратное ускорение своей долгосрочной целью, хотя «нам придется проявить творческий подход».

Python 3.10, который в настоящее время находится в стадии бета-тестирования, планируется выпустить в октябре этого года. График выпуска примерно годовой, поэтому мы можем ожидать 3.11 в октябре 2022 года. ®