Facebook открыл код форка CPython для Instagram

Facebook открыл код форка CPython для Instagram

21.05.2021      108272

Компания Facebook выложила в открытый доступ исходный код Cinder. Он обеспечивает работу Instagram и включает инструменты оптимизации, которые позволили нарастить производительность платформы.

Что такое Cinder

Cinder – это форк проекта CPython версии 3.8.5. Он доступен в репозитории на GitHub. Проект выложили «как есть» – без подробной документации, местами с комментариями и мелкими недостатками, которые встречаются в любом рабочем коде. Cinder достаточно надежный, но если в процессе использования возникнут проблемы, решать их придется самостоятельно.

В Facebook подчеркнули: Cinder – попытка улучшить CPython, но не альтернатива ему. Компания заявила, что не планирует поддерживать Cinder как платформу с открытым исходным кодом.

Создатели Cinder надеются, что созданные ими оптимизации однажды смогут войти в основную ветку CPython. Они также помогут другим командам, которые развивают проект и стремятся улучшить его производительность.

Чем Cinder отличается от CPython

Проект CPython считают эталонной реализацией Python. Это интерпретатор байт-кода, написанный на языке С. Его развитием занимаются разработчики во главе с создателем Python Гвидо ван Россумом.

В Cinder реализовано Inline-кэширование байткода. Интерпретатор находит фрагменты программы, которые можно оптимизировать, и динамически заменяет их на ускоренные варианты. Чем больше в вашем коде повторяющихся вызовов функций, тем потенциально сильнее такое кэширование поможет ускорить программу.

Также форк поддерживает активное вычисление сопрограмм. При асинхронных вызовах функций, код которых обрабатывается сразу и не поддерживает команду await, проект не будет создавать сопрограмму или привлекать обработчик событий в цикле. Он сразу подставит результат работы функции в нужное место. В Facebook подсчитали, что в коде Instagram такая оптимизация обеспечивает 5% рост скорости работы.

Зачем нужна выборочная JIT-компиляция в Cinder

В проекте на Cinder можно включить выборочную JIT-компиляцию на уровне отдельных функций и методов класса. Для этого нужно либо установить значение переменной окружения PYTHONJIT=1, либо использовать опцию -X jit при сборке.

При такой компиляции JIT преобразует байткод Python в HIR (высокоуровневое промежуточное представление). Но если стандартный байткод использует стековую виртуальную машину, то HIR – регистровую. Кроме того, представление учитывает данные о типах и другую информацию, важную для определения производительности кода.

В свою очередь, HIR преобразуется в SSA (static single assignment) – представление, в котором каждой переменной единожды присваивается значение. После нескольких стадий оптимизации создается низкоуровневое представление (LIR). Из него в итоге и создаются ассемблерные инструкции.

Разработчики подсчитали, что в результате JIT-компиляции тесты производительности будут выполняться в 1,5-4 раза эффективнее. Также можно указать список функций, для которых выполняется такая компиляция.

Для Cinder доступен экспериментальный компилятор Static Python. В отдельных случаях его использование совместно с JIT обеспечивает 7-кратный выигрыш в производительности в сравнении с CPython.



Источник: https://infostart.ru/journal/news/tekhnologii/facebook-otkryl-kod-forka-cpython-dlya-instagram_1445917/
Автор:
Обозреватель


В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
В этой теме еще нет сообщений.
Оставьте свое сообщение

См. также

Утвержден перечень случаев, в которых запрещено и разрешено использовать биометрию

Новость Законодательство ИТ-новость

Правительство опубликовало постановление, в котором перечислены случаи запрета и разрешения аутентификации по биометрическим данным. Изменения вступают в силу с 1 июня 2023 года.

02.06.2023    4315    VKuser24342747    0       

1

За нарушение частичного запрета на использование иностранных мессенджеров будут штрафовать

Новость Законодательство ИТ-новость Мессенджеры

Государственные и финансовые организации могут получить штраф до 700 тыс. руб. за использование иностранных мессенджеров, использование которых частично запрещено.

16.05.2023    5321    user1915669    1       

1

GitHub тестирует систему создания правил для защиты веток в репозиториях

Новость GitHub ИТ-новость

GitHub запустил публичный бета-тест функции, которая позволяет владельцам репозиториев создавать наборы правил для защиты своих проектов от изменений и поддержания порядка в ветках.

20.04.2023    10830    VKuser24342747    1       

1

Техника на отечественных процессорах получит приоритет при госзакупках

Новость Импортозамещение ИТ-новость

Правительство подготовило постановление, которое даст электронике с российскими процессорами наивысший приоритет при госзакупках. Документ вступает в силу с 20 апреля 2023 года.

04.04.2023    6077    VKuser24342747    0       

1

ФНС заявила, что приложение «Мой налог» готово к интеграции бесконтактной оплаты

Новость Мобильные приложения Налоги Самозанятые ФНС

Федеральная налоговая служба рассказала, что готова к интеграции в приложение «Мой налог» функции бесконтактной оплаты. С ее помощью самозанятые смогут принимать платежи через смартфон, как через банковский терминал.

29.03.2023    5986    VKuser24342747    0       

2

Центробанк назначил оператора единой автоматизированной системы страхования

Новость Страхование ИТ-новость

3 марта 2023 года Центробанк принял решение об учреждении АО «Национальная страховая информационная система».

20.03.2023    4705    user1915009    1       

1

GitHub открыл доступ к сервису для проверки безопасности репозиториев

Новость GitHub ИТ-новость

Бесплатный сервис GitHub для проверки безопасности репозиториев позволяет защитить публичные проекты от утечки конфиденциальных данных. Ранее эта услуга была доступна только владельцам лицензии на GitHub Advanced Security, работающие в облаке GitHub Enterprise Cloud.

07.03.2023    16464    VKuser24342747    1       

1

Минпромторг подготовил план перехода объектов КИИ на российское ПО

Новость Импортозамещение ИТ-новость

В проекте документа ведомство предлагает поэтапное внедрение отечественных разработок в госкомпаниях и промышленных предприятиях. Полный переход намечен на 2024 год.

20.02.2023    7795    VKuser24342747    0       

3

Магазин приложений RuStore объявил о завершении бета-теста

Новость Импортозамещение ИТ-новость Минцифры

В релизной версии маркетплейса стала доступна консоль разработчика на английском языке. Загружать приложения в магазин станет проще для иностранных издателей.

16.02.2023    6764    VKuser24342747    3       

1

СУБД Postgres Pro Enterprise начала поддерживать быструю миграцию с Oracle

Новость ИТ-новость Разработка

Релиз российской системы включает все возможности открытой PostgreSQL 15 и облегченной версии СУБД компании — Postgres Pro Standard 15, а также функцию маскировки данных для их конфиденциальной передачи и улучшенное резервное копирование.

10.02.2023    8795    VKuser24342747    2       

1

«Сбер» начнет использовать российские TLS-сертификаты для платежного шлюза

Новость Безопасность ИТ-новость Минцифры

Банк запланировал переход на сертификаты, выпущенные Национальным удостоверяющим центром (НУЦ) Минцифры, на 30 января 2023 года. Клиентам необходимо добавить на свои серверы корневой сертификат ведомства.

30.01.2023    7473    VKuser24342747    1       

2

Минцифры подготовило правила отказа от передачи биометрических данных

Новость ИТ-новость Минцифры

Гражданин имеет право отказаться от сбора и распространения своих биометрических данных. Отказ можно оформить в МФЦ только при личном присутствии.

24.01.2023    6895    VKuser24342747    0       

1

Банки смогут получить право на передоверие полномочий по электронной подписи

Новость ИТ-новость Цифровая подпись Цифровая экономика

Комитет Госдумы рекомендует принять соответствующий законопроект. Документ позволит компаниям финансового сектора использовать электронную подпись наравне с другими организациями.

20.01.2023    5178    VKuser24342747    0       

1

«ВКонтакте» начал поддерживать получение уведомлений от Госуслуг

Новость Госуслуги ИТ-новость Мессенджеры Налоги

Оповещения с Единого портала госуслуг будут отображаться в Вконтакте и приложении «VK Мессенджер». Кроме того, стала доступна оплата штрафов ГИБДД прямо в VK.

19.01.2023    6198    VKuser24342747    0       

1

Минцифры подготовило правила аккредитации госорганов на владение информсистемами для биометрии

Новость Законодательство ИТ-новость Минцифры

Проект постановления содержит требования к Цетробанку и госорганам, а также к сторонним организациям, которые будут привлекаться ведомствами в качестве операторов. Требования согласованы с ФСБ.

19.01.2023    5757    VKuser24342747    0       

1

Утвержден профстандарт специалиста по информационной безопасности

Новость Безопасность ИТ-новость

Новый профстандарт вступит в силу 1 сентября 2023 года. А пока у работодателей в кредитно-финансовой сфере есть время проанализировать трудовой функционал специалистов по ИБ и при необходимости уточнить его.

17.01.2023    8190    user1816563    0       

2

Национальная система пространственных данных начала работу в России

Новость ИТ-новость Цифровая экономика

Пилотный проект по запуску цифровой платформы стартовал в четырех регионах РФ. При помощи системы можно получать актуальные данные о земле и недвижимости, пользоваться электронными сервисами.

12.01.2023    8188    VKuser24342747    0       

3

Госдума рассмотрит законопроект о цифровом рубле

Новость Законодательство ИТ-новость Цифровая экономика

Документ определяет выпуск и обращение цифрового рубля на территории России, назначает оператора нового платежного средства и его полномочия и обязанности по сохранности денег пользователей.

11.01.2023    8871    VKuser24342747    2       

2

Оператором Единой биометрической системы стал «Центр Биометрических Технологий»

Новость ИТ-новость

Ранее за работу платформы отвечал «Ростелеком». На «Центр Биометрических Технологий» возложены задачи по развитию в России цифровых технологий идентификации и аутентификации, в том числе на основе биометрических персональных данных.

22.12.2022    6805    VKuser24342747    2       

1

GitHub бесплатно проверит репозитории на наличие секретных токенов

Новость GitHub Безопасность ИТ-новость

ИТ-хостинг запустил систему сканирования общедоступных репозиториев, чтобы предотвратить случайное раскрытие конфиденциальной информации, такой как учетные данные и токены аутентификации.

22.12.2022    8336    VKuser24342747    1       

1

GitHub к концу 2023 года введет обязательную двухфакторную аутентификацию

Новость GitHub Безопасность ИТ-новость

Веб-хостинг потребует от всех пользователей, загружающих код, включить двухфакторную аутентификацию (2FA) для дополнительной защиты своих аккаунтов.

21.12.2022    7691    VKuser24342747    0       

1

Госдума рассмотрит законопроект о провайдере для госсайтов

Новость Государственные, бюджетные структуры Законодательство ИТ-новость

Документ предусматривает запрет на размещение государственных информационных ресурсов на хостингах, не включенных в специальный реестр. Сейчас около 20% ресурсов госорганов размещены на иностранных площадках.

20.12.2022    6645    VKuser24342747    1       

1

«Яндекс» открыл доступ к фреймворку Yatagan для сборки Android-приложений

Новость ИТ-новость Яндекс Разработка

Инструмент свободно распространяется через GitHub. Перед публикацией в открытом доступе фреймворк долгое время применялся во внутренних проектах компании. Решение основано на API Dagger.

16.12.2022    9155    VKuser24342747    1       

3

В России появится национальная издательская система вместо иностранных аналогов

Новость Импортозамещение ИТ-новость

Программный комплекс будет создан на базе существующего отечественного решения Axiocat. Сейчас это приложение не внесено в Единый реестр российского ПО, хотя применяется некоторыми компаниями.

15.12.2022    6211    VKuser24342747    0       

1

Google рассказала о проблемах и преимуществах поддержки разработки на Rust в Android 13

Новость Google ИТ-новость Языки программирования

По итогам внедрения поддержки разработки на Rust снизилось число уязвимостей, связанных с управлением памятью. Инженеры считают, что основное внимание нужно уделить написанию нового кода, а не переписыванию старого.

14.12.2022    6849    VKuser24342747    0       

3