[NIXP] Google выпустила Grumpy для трансляции кода Python на язык Go и лучшей производительности

Обсуждение новостей, соответствующих тематике форума

Модератор: Модераторы разделов

Ответить
Аватара пользователя
Dmitry Shurupov
Сообщения: 336
Статус: Open Source geek
ОС: Ubuntu Linux
Контактная информация:

[NIXP] Google выпустила Grumpy для трансляции кода Python на язык Go и лучшей производительности

Сообщение Dmitry Shurupov »

Вчера компания Google сообщила о выпуске экспериментальной среды исполнения кода Python на языке Go, которая получила название Grumpy. В инфраструктуре Google задействованы миллионы строк кода на Python. Например, frontend-сервер, обслуживающий youtube.com и различные API этого сервиса, в основном написаны на Python и обслуживают миллионы запросов в секунду. Фронтенд YouTube запущен на CPython 2.7, что привело инженеров Google к необходимости «выполнять огромную работу по улучшению исполняемой среды и адаптации приложения для оптимальной работы в этой среде». Несмотря на то, что их усилия приносили определённые результаты, постоянно возникала проблема производительности в CPython при обслуживании большого числа одновременных процессов. Для её решения были исследованы многие исполняемые среды Python: у каждой из них были обнаружены свои плюсы и минусы, но в итоге в Google пришли к необходимости созданию своей runtime, специально оптимизированной для задач реального времени. Так появился проект Grumpy. Grumpy от Google — это не просто ещё одна исполняемая среда (runtime) для Python, а транскомпилятор кода Python в код Go. Транслированные с помощью Grumpy приложения могут (без необходимости в дальнейшей модификации) запускаться в среде языка Go: «Для нас было необходимо обеспечить поддержку большой существующей кодовой базе Python, поэтому важно иметь высокую степень совместимости с CPython. Цель Grumpy — служить любому проекту, написанному на чистом Python, готовой заменой для среды исполнения». У Grumpy есть некоторые ограничения — например, отсутствует поддержка модулей расширения к Python на языке Си. Но есть и примечательные достоинства — в частности, отсутствие глобальной блокировки интерпретатора и использование сбора мусора Go для управления жизненным циклом объектов (вместо подсчёта указателей). «Мы считаем, что у Grumpy есть потенциал более гладкого масштабирования, чем с CPython, для многих реальных нагрузок», — заявляют в Google, подтверждая своё мнение результатами одного из тестов производительности (см. иллюстрацию к новости). Исходный код Grumpy написан на языках Python и Go, опубликован на GitHub на условиях свободной лицензии Apache License 2.0.
По-моему, это еще один повод перейти на Убунту.
Спасибо сказали:
azsx
Сообщения: 3684
ОС: calculate linux, debian, ubuntu

Re: [NIXP] Google выпустила Grumpy для трансляции кода Python на язык Go и лучшей производительности

Сообщение azsx »

Почему тогда сразу не писать на go?
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: [NIXP] Google выпустила Grumpy для трансляции кода Python на язык Go и лучшей производительности

Сообщение Bizdelnick »

azsx писал(а):
05.01.2017 16:14
Почему тогда сразу не писать на go?

Потому что
Dmitry Shurupov писал(а):
05.01.2017 13:40
В инфраструктуре Google задействованы миллионы строк кода на Python.
Переписывание обойдётся намного дороже. Если писать с нуля, то, конечно, лучше сразу на go, чем использовать этот костыль.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Ответить