04.12.2022

В JIT-компиляторе Pyston-lite реализована поддержка Python 3.10

Доступен новый выпуск расширения Pyston-lite, реализующего JIT-компилятор для CPython. В отличие от проекта Pyston, развиваемого обособленно как ответвление от кодовой базы CPython, Pyston-lite оформлен в виде универсального расширения, предназначенного для подключения к штатному интерпретатору Python (CPython). Новый выпуск примечателен обеспечением поддержки веток Python 3.7, 3.9 и 3.10, помимо ранее поддерживаемой ветки 3.8.

Pyston-lite позволяет использовать базовые технологии Pyston без замены интерпретатора, через установку дополнительного расширения при помощи пакетного менеджера PIP или Conda. Pyston-lite уже размещён в репозиториях PyPI и Conda и для установки достаточно выполнить команду «pip install pyston_lite_autoload» или «conda install pyston_lite_autoload -c pyston». Предложено два пакета: pyston_lite (непосредственно JIT) и pyston_lite_autoload (выполняет автоматическую подстановку JIT при запуске процесса Python). Возможно и программное управление включением JIT из приложения без установки модуля autoload, используя функцию pyston_lite.enable().

Дополнительно разработчики объявили, что отныне рассматривают Pyston-lite в качестве своего первичного продукта. Обычный Pyston позволяет добиться более высокой производительности, но его использование затруднено необходимостью замены интерпретатора, в то время как Pyston-lite легко интегрируется в имеющиеся конфигурации. Присутствовавшие в Pyston специфичные оптимизации будут по возможности перенесены в основной состав CPython. В отдалённой перспективе имеется желание перенести в основной состав CPython и реализацию JIT-компилятора.

В текущем виде по сравнению с CPython 3.8 использование Pyston-lite позволяет поднять производительность на 10% в тексте macrobenchmarks и на 28% в тесте pyperformance. Для сравнения прирост производительности при использовании обособленного Pyston составляет 28% и 65% соответственно.

В грядущий выпуск основного проекта CPython 3.11 включены изменения, связанные с кэшированием состояния байткода, ускорением вызова функций и применением быстрых интерпретаторов типовых операций, а также перенесены некоторые оптимизации, подготовленные проектами Cinder и HotPy. В итоге CPython 3.11rc2 в вышеотмеченных тестах демонстрирует прирост производительности в 12% и 26%, что сопоставимо с показателями Pyston-lite (в новом CPython и Pyston-lite применены разные оптимизации, портирование Pyston-lite для CPython 3.11 позволит ещё поднять производительность данной ветки).

Источник.