Pyston 2 - реализация Python с JIT-компилятором

После трехлетнего перерыва в разработке, опубликован запуск проекта Pyston 2, что я разработалк высокопроизводительной реализации языка Python с использованием разработок проекта LLVM.

Реализация выделяется использованием современных технологий JIT-компиляции и нацелен на достижение высокой производительности, аналогичной традиционным системным языкам, таким как C ++.

Код из предыдущих версий Пайстон распространялся под лицензией Apache, но код Pyston 2 пока недоступен и для Ubuntu 18.04 и 20.04 выпущены только готовые сборки (файл с кодом доступен для загрузки, но есть только заглушка с информацией о том, что проект все еще закрыт) .

Публикация кода - часть планов разработчиковно это будет сделано после завершения формирования бизнес-модели новой компании, и было решено продолжить разработку Pyston без финансовой поддержки Dropbox.

О Pyston 2

В отличие от предыдущих версий, Pyston 2 отмечен как стабильный а не как пробную версию. Была проделана большая работа по оптимизации производительности, и Pyston 2 теперь быстрее исходного Python 3.8 примерно на 20% при прохождении набора тестов python-macrobenchmarks.

Наиболее заметный прирост производительности наблюдается в рабочих нагрузках веб-приложений. В отдельных тестах, таких как chaos.py и nbody.py, Pyston 2 превосходит Python 3.8 в 2 раза. Стоимость использования JIT заключается в небольшом увеличении потребления памяти.

Мы очень рады выпустить Pyston v2, более быструю и хорошо совместимую реализацию языка программирования Python. Версия 2 на 20% быстрее, чем стандартный Python 3.8 в наших тестах макросов. Что еще более важно, это, вероятно, быстрее в вашем коде. Pyston v2 может снизить затраты на сервер, уменьшить задержки пользователей и повысить производительность труда разработчиков.

Pyston v2 легко реализовать, поэтому, если вы ищете более высокую производительность Python, мы рекомендуем вам потратить пять минут и попробовать Pyston. Это один из самых простых способов ускорить ваш проект.

С точки зрения совместимости с собственным Python, проект Pyston рекламируется как наиболее совместимая альтернативная реализация для CPython, поскольку Pyston является форком основной кодовой базы CPython.

поршень поддерживает все функции CPython, включая C API для разработки расширений C. Pyston был первоначально разработан Dropbox, который в 2017 году решил прекратить внутреннюю разработку. В начале 2020 года ведущие разработчики Pyston основали свою компанию, полностью изменили проект и начали работать в Pyston на постоянной основе.

Технические подробности о заполнении Pyston 2 пока не предоставлены, упоминаются только DynASM JIT, встроенное кэширование и общие оптимизации CPython. Предыдущая версия Pyston использовала один метод JIT за раз, аналогично JIT в современных движках JavaScript.

В JIT код Python был проанализирован и переведен к промежуточному представлению LLVM (IR, Промежуточное представление). Кроме того, представление IR было обработано в оптимизаторе LLVM и передано механизму LLVM JIT для выполнения, который преобразовал представление IR в машинный код.

Для получения информации о типах переменных для программ на динамическом языке Python использовалась методика вероятностного предсказания типов объектов с последующим уточнением правильного выбора типа при выполнении.

Поэтому Pyston постоянно менял выполнение между двумя ветвями: быстрое, когда прогнозируемые скорости подтверждаются, и медленное, которое используется в случае несоответствия типов.

Работа могла выполняться в многопоточном режиме, позволяет параллельное выполнение нескольких потоков кода на языке Python и без глобальной блокировки интерпретатора (GIL).

В конце концов если вы хотите узнать об этом больше, вы можете проверить подробности в по следующей ссылке.


Оставьте свой комментарий

Ваш электронный адрес не будет опубликован. Обязательные для заполнения поля помечены *

*

*

  1. Ответственный за данные: Мигель Анхель Гатон
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.