На Саммит языка Python на PyCon 2021 на этой неделе создатель языка Python Гвидо ван Россум раскрыли ближайшие и долгосрочные планы для того, чтобы сделать Python быстрее – от двух до пяти раз быстрее, а возможно и больше.

У языка Python уже есть много способов работать быстрее, от альтернативных сред выполнения, таких как PyPy, до модулей, написанных на C / C ++. Но почти ни один из этих методов не предполагает ускорения самого CPython – эталонной реализации Python, написанной на C, который является наиболее широко используемой версией языка.

Краткосрочный план состоит в том, чтобы добавить по крайней мере один серьезный набор улучшений производительности в Python 3.11, который сейчас официально находится в стадии разработки как проект альфа-уровня. Python 3.11 планируется выпустить в 2022 году.

в презентация На языковом саммите ван Россум описал, как текущий план по ускорению Python должен работать при некоторых серьезных ограничениях. Любые изменения в CPython не должны нарушать ABI (двоичный интерфейс приложения) среды выполнения, чтобы расширения Python, написанные на C, продолжали работать как есть. Изменения должны быть постепенными и управляемыми в соответствии с общими целями CPython по сохранению ремонтопригодности и простой и понятной кодовой базы. И все модификации должны быть с открытым исходным кодом; не может быть никаких проприетарных расширений «черного ящика» для CPython.

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

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

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

Все эти изменения не соответствуют одному из наиболее часто предлагаемых улучшений Python: генерации машинного кода во время выполнения или своевременной компиляции («JITing»). В своем выступлении ван Россум предположил, что такие планы будут рассматриваться после Python 3.11, потому что имеет смысл сначала получить любые улучшения производительности, которые могут быть получены с помощью более целенаправленных изменений.

Вся работа, выполняемая для этого проекта, размещена на GitHub в репозитории, быстрее-Cypthon, с отслеживанием как кода (форк CPython 3.11), так и идей.

Авторские права © 2021 IDG Communications, Inc.


#Создатели #Python #обнародовали #планы #по #ускорению #Python

Source link