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.

Pyston поддерживает все функции 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. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.