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

Вчера компания Google сообщила о выпуске экспериментальной среды исполнения кода Python на языке Go, которая получила название Grumpy.

В инфраструктуре Google задействованы миллионы строк кода на Python. Например, frontend-сервер, обслуживающий youtube.com и различные API этого сервиса, в основном написаны на Python и обслуживают миллионы запросов в секунду. Фронтенд YouTube запущен на CPython 2.7, что привело инженеров Google к необходимости «выполнять огромную работу по улучшению исполняемой среды и адаптации приложения для оптимальной работы в этой среде». Несмотря на то, что их усилия приносили определённые результаты, постоянно возникала проблема производительности в CPython при обслуживании большого числа одновременных процессов. Для её решения были исследованы многие исполняемые среды Python: у каждой из них были обнаружены свои плюсы и минусы, но в итоге в Google пришли к необходимости созданию своей runtime, специально оптимизированной для задач реального времени. Так появился проект Grumpy.

Сравнение производительности CPython и Grumpy при масштабировании
Сравнение производительности CPython и Grumpy при масштабировании / Иллюстрация с сайта Google Open Source Blog

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.

Дмитрий Шурупов по материалам Google Open Source Blog.




!

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




Коды для вставки в блог\форум

blog comments powered by Disqus


Вспомним другие новости из этого раздела?


Soft

«« ОС UNIX — 47 лет
31.12.2016 21:24
←+Ctrl+→

Интересные новости
Состоялся релиз операционной системы Debian 9 StretchСостоялся релиз операционной системы Debian 9 Stretch
Casync — утилита для частой синхронизации файловых систем, «вдохновлённая» rsync и GitCasync — утилита для частой синхронизации файловых систем, «вдохновлённая» rsync и Git
ОС Windows 98 отмечает свой день рожденияОС Windows 98 отмечает свой день рождения
Утечка исходных кодов Windows 10 получила подтверждениеУтечка исходных кодов Windows 10 получила подтверждение
Linux 4.14 станет следующим релизом ядра с длительной поддержкой (LTS)Linux 4.14 станет следующим релизом ядра с длительной поддержкой (LTS)
Блок рекламы


Похожие новости

Язык D принят для включения в набор компиляторов GCCЯзык D принят для включения в набор компиляторов GCC
Google Glass получили первое за три года обновлениеGoogle Glass получили первое за три года обновление
OutWiker 2.0 — обновление программы с интерфейсом wxPython для хранения wiki/HTML-заметокOutWiker 2.0 — обновление программы с интерфейсом wxPython для хранения wiki/HTML-заметок
Spinnaker 1.0 — Open Source-платформа Google для DevOps с поддержкой CI/CD в разных облакахSpinnaker 1.0 — Open Source-платформа Google для DevOps с поддержкой CI/CD в разных облаках
Google добавит функцию блокировки рекламы в Chrome в начале 2018 годаGoogle добавит функцию блокировки рекламы в Chrome в начале 2018 года
Red Hat покупает Codenvy для лучшей интеграции её IDE на базе Eclipse Che в OpenShift.ioRed Hat покупает Codenvy для лучшей интеграции её IDE на базе Eclipse Che в OpenShift.io
Istio — новый service mesh от Google, IBM и Lyft для микросервисов с поддержкой KubernetesIstio — новый service mesh от Google, IBM и Lyft для микросервисов с поддержкой Kubernetes
На Google I/O 2017 анонсировали бета-версию Android O, рассказали о новшествах и особенностяхНа Google I/O 2017 анонсировали бета-версию Android O, рассказали о новшествах и особенностях
Apple выпустила macOS Sierra 10.12.5Apple выпустила macOS Sierra 10.12.5
В сети появились первые скриншоты новой ОС Google FuchsiaВ сети появились первые скриншоты новой ОС Google Fuchsia
Последние новости

Подгружаем последние новости