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.




!

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

0



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

blog comments powered by Disqus


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


Soft

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

Интересные новости
Opera внедрит новый вариант дизайна своего браузераOpera внедрит новый вариант дизайна своего браузера
Upspin — новый Open Source-проект Google для безопасного обмена файлами по сетиUpspin — новый Open Source-проект Google для безопасного обмена файлами по сети
GitHub опубликовала инструкции по взаимодействию с Open Source: как внести вклад, как начать проект и т.п.GitHub опубликовала инструкции по взаимодействию с Open Source: как внести вклад, как начать проект и т.п.
Linux 4.10: виртуализация GPU в KVM,  гибридный опрос блочных устройств, writeback cache для RAID5, новые ARM SoC…Linux 4.10: виртуализация GPU в KVM, гибридный опрос блочных устройств, writeback cache для RAID5, новые ARM SoC…
В веб-офис ONLYOFFICE добавили интеграцию с облачным Open Source-хранилищем ownCloudВ веб-офис ONLYOFFICE добавили интеграцию с облачным Open Source-хранилищем ownCloud
Блок рекламы


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

Upspin — новый Open Source-проект Google для безопасного обмена файлами по сетиUpspin — новый Open Source-проект Google для безопасного обмена файлами по сети
Google добавила в Open Source-проект Chromium код мобильного веб-браузера Chrome для iOSGoogle добавила в Open Source-проект Chromium код мобильного веб-браузера Chrome для iOS
Google Chrome начал предупреждать о небезопасных HTTP-страницахGoogle Chrome начал предупреждать о небезопасных HTTP-страницах
Google выпустила Draco — Open Source-библиотеку для сжатия 3D-графикиGoogle выпустила Draco — Open Source-библиотеку для сжатия 3D-графики
Google и Fiat Chrysler показали новую информационно-развлекательную автомобильную систему на базе Android 7.0Google и Fiat Chrysler показали новую информационно-развлекательную автомобильную систему на базе Android 7.0
Wycheproof ­— Open Source-проект Google для проверки криптографических библиотекWycheproof ­— Open Source-проект Google для проверки криптографических библиотек
Apple выпустила macOS Sierra 10.12.2Apple выпустила macOS Sierra 10.12.2
Android Things — редакция мобильной Linux-платформы Google для интернета вещей (IoT)Android Things — редакция мобильной Linux-платформы Google для интернета вещей (IoT)
Google выпустила инструмент OSS-Fuzz для постоянного fuzz-тестирования Open Source-проектовGoogle выпустила инструмент OSS-Fuzz для постоянного fuzz-тестирования Open Source-проектов
PHP 7.1 — релиз популярного языка программирования с новыми возможностямиPHP 7.1 — релиз популярного языка программирования с новыми возможностями
Последние новости

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