28.11.2021

Проект Pyston, предлагающий Python с JIT-компилятором, вернулся к открытой модели разработки

Разработчики проекта Pyston, предлагающего высокопроизводительную реализацию языка Python, использующую современные технологии JIT-компиляции, представили новый выпуск Pyston 2.2 и объявили о возвращении проекта в число открытых. Реализация нацелена на достижение высокой производительности, близкой к производительности традиционных системных языков, таких как C++. Код ветки Pyston 2 опубликован на GitHub под лицензией PSFL (Python Software Foundation License), аналогичной лицензии на CPython.

Напомним, что ранее проект Pyston курировала компания Dropbox, которая в 2017 году прекратила финансирование разработки. Разработчики Pyston основали свою компанию и выпустили существенно переработанную ветку Pyston 2, которая была объявлена стабильной и готовой для широкого использования. При этом разработчики прекратили публикацию исходных текстов и перешли к предоставлению только бинарных сборок. Теперь Pyston решено опять сделать открытым проектом, а компанию перевести на бизнес-модель, связанную с разработкой открытого ПО. Более того, рассматривается возможность переноса оптимизаций из Pyston в штатный CPython.

Отмечается, что Pyston 2.2 в тестах производительности, оценивающих нагрузки свойственные приложениям для web-сервера, быстрее штатного Python на 30%. Также отмечается значительное увеличение производительности Pyston 2.2 по сравнению с прошлыми выпусками, чего удалось добиться в основном за счёт добавления оптимизаций для новых областей, а также усовершенствованию JIT и механизмов кэширования.

Помимо оптимизации производительности новый выпуск также интересен переносом изменений из ветки CPython 3.8.8. С точки зрения совместимости со штатным Python, проект Pyston преподносится как наиболее совместимая с CPython альтернативная реализация, так как Pyston является ответвлением от основной кодовой базы CPython. В Pyston поддерживаются все возможности CPython, в том числе C API для разработки расширений на языке Си. Среди основных отличий Pyston от CPython выделяется использование DynASM JIT, inline-кэширования и общих оптимизаций.

Из изменений в Pyston 2.2 также упоминается проведение чистки кодовой базы от многих отладочных возможностей CPython, которые негативно влияют на производительность, но при этом почти не востребованы у разработчиков. Приводится статистика, в соответствии с которой удаление отладочных средств приводит к ускорению работы на 2%, при том, что лишь примерно 2% разработчиков используют данные функции.

Источник.