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.







Интересные новости
Незавершенная версия Windows 7 работает лучше Vista
Программист открыл заблокированные возможности Windows 7
Quick Slide Show 2.32: создание flash-презентаций
Покупатели гоняются за старыми компьютерами ради Windows XP
Визуализатор V-Ray 1.5 Service Pack 2 с поддержкой 3ds Max 2009
Блок рекламы


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

Google випустив оновлення Chrome з режимом економії заряду батареїGoogle випустив оновлення Chrome з режимом економії заряду батареї
Google попередив користувачів про небезпеку: їм потрібно терміново оновити браузерGoogle попередив користувачів про небезпеку: їм потрібно терміново оновити браузер
Программистов из РоSSии и Беларуси отстранили от участия в конкурсе GoogleПрограммистов из РоSSии и Беларуси отстранили от участия в конкурсе Google
Apple выпустила macOS 12.2.1 с исправлением проблемы самопроизвольной разрядки некоторых MacBookApple выпустила macOS 12.2.1 с исправлением проблемы самопроизвольной разрядки некоторых MacBook
Иконка Google Chrome получит первый редизайн за 8 лет и вариации для разных ОСИконка Google Chrome получит первый редизайн за 8 лет и вариации для разных ОС
NVIDIA выпустила обновление безопасности для видеокарт серии KeplerNVIDIA выпустила обновление безопасности для видеокарт серии Kepler
Недавнее обновление нарушает работоспособность браузера Google Chrome для iOSНедавнее обновление нарушает работоспособность браузера Google Chrome для iOS
Google назвала Chrome OS самой быстрорастущей операционной системой в мире
Apache выпустила уже третий патч для закрытия уязвимости в библиотеке Log4j — второй снова не справился
Google похоронила панель Google Toolbar для Internet Explorer спустя 21 год после запуска
Последние новости

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