Кто не хочет ускорить свою работу? На язык кодирования общего назначения Python поступали жалобы, что он слишком медленный. Язык Python широко используется в таких приложениях, как машинное обучение и проекты по изучению данных. Однако его производительность подвергается критике. Некоторые языки и среды исполнения могут быстро создавать код, но их нелегко сделать производительными.
Учитывая множество проблем, возникающих при использовании, существует реальная потребность в более быстром исполнении. Более того, для решения этой проблемы Кевин Модзелевски помог сделать интерпретатор Pyston, полностью ориентированный на ускорение кода Python. Проект Pyston появился из-за плохой производительности при выполнении кода, с которой столкнулись разработчики. Разработчики Pyston выпустили версию 2.2 своей среды выполнения.
Что такое Pyston?
Ориентированный на высокую скорость Pyston является адаптацией известного языка программирования Python. В нем используется компиляция "just-in-time" и множество других приемов для ускорения работы. В нем есть новая функция полного исходного кода. Ниже вы можете ознакомиться с оригинальным лицензированием Python как проекта с открытым исходным кодом.
Какова цель Pyston?
Он преследует сразу две цели.
Он производит замену стандартного времени исполнения Python. По сути, он может ускорить уже существующие установки Python с наименьшими усилиями.
Любые нововведения в Pyston будут возвращены обратно в Python только если этого пожелает команда Python.
Производительность
Версия 2.2 Pyston на 30% быстрее Python в бенчмарках для веб-браузеров. Pyston имеет схожую базовую технологию, которая была в предыдущих версиях. Тем не менее, в некоторых областях оптимизация стала более быстрой, а механизмы кэширования атрибутов стали еще быстрее.
Редко используемые функции отладки удалены
Разработчики удалили несколько редко используемых функций отладки в огромных масштабах. Эти функции замедляли процесс внедрения, даже когда они не использовались. Теперь разработчики получили улучшение производительности на 2%. Примечательно для разработчиков, что во всех системах по всему миру, на которых в настоящее время работает Python, 2% выполняют отладочные проверки.
Вся команда убрала специфическую функцию, которая все еще может понадобиться некоторым пользователям. Таким образом, разработчики Pyston позиционируют реализацию как "оптимизированную сборку". Если кому-то нужны функции отладки, он может использовать отладочную сборку стандартной реализации Python.
Легко использовать
Разработчики Pyston приложили все усилия, чтобы сделать реализацию как можно менее болезненной в использовании. Главная цель в том, чтобы Python можно было использовать, просто набрав "Pyston" вместо "Python".
Проект Pyston
Начало проекта Pyston было нестабильным, его развитие прервалось после того, как Dropbox отказался от спонсорства в 2017 году. Теперь множество отзывов от потенциальных клиентов убедили команду в том, что Pyston может развиваться по бизнес-модели с открытым исходным кодом. Код для Pyston версии 2.2 теперь доступен на GitHub.
Тем временем, страница Facebook Incubator на GitHub недавно запустила новый проект под названием Cinder. Он описывается как внутренняя производственная версия CPython 3.8, ориентированная на производительность Instagram. Основная цель - передавать любые модификации, ускоряющие производительность, обратно в CPython.
Команда проекта Cinder заявила, что пока Cinder работает в продакшене, они не предоставляют никакой поддержки пользователям, запускающим его извне. Тем не менее, он находится в открытом доступе для всех желающих попробовать, загрузить и рекомендовать улучшения.
В Cinder есть несколько оптимизаций производительности. К ним относятся встроенное кэширование байткода, экспериментальный компилятор байткода, ускоренная оценка корутинов. Все они используют некоторые аннотации типов для выпуска специализирующегося на типах байткода, который лучше работает в JIT.
Подведение итогов
Прилагаются усилия, чтобы сделать Pyston более привлекательным и простым в использовании для пользователей. Создатель Python в основном сосредоточился на машинном обучении и разработке искусственного интеллекта с помощью NumPy (Python Libraries ). Он ведет ту же коммерческую деятельность, запустив версию с открытым исходным кодом своего подразделения Python и его версии. Кевин Модзелевски хотел сделать Pyston более прибыльным с помощью open-source, начиная с услуг поддержки. Модзелевски считает, что разработчикам должно быть легко обменивать существующий код Python на Pyston. Он заявил: "Использование Pyston в ваших проектах должно быть таким же простым, как замена "Python" на "Pyston"".