Через ассемблер к плюсам: устройство и оптимизация CGo ☠️

Хардкор

C/C++
Оптимизация производительности
Логирование и мониторинг
GO
Оптимизация

Доклад принят в программу конференции

Мнение Программного комитета о докладе

CGо принято избегать — и медленный он, и неудобный, и чужой в Go-окружении. Все так, особенно про скорость! Но что делать, если без CGо не обойтись? Причин может быть много, а результат один: мы идем оптимизировать то, что оптимизировать трудно и страшно. Слушаем доклад от настоящего героя!

Целевая аудитория

Этот доклад будет интересен и тем, кто активно использует текущую реализацию CGo, и тем, кто только планирует это делать. Также этот доклад может быть интересен просто для понимания рантайма Go.

Тезисы

Go отлично подходит для оркестрации сложных взаимодействий. Однако в языке не всегда достаточно возможностей с точки зрения оптимизации ресурсов, например, памяти и процессорного времени. Мы пишем свою систему мониторинга и стремимся минимизировать нагрузку от неё на наблюдаемую систему. Значительную часть логики по компрессии и обработке данных мы написали на C++, но взаимодействие получившегося ядра с основным кодом на Go могло свести на нет все оптимизации.

В докладе мы подробно разбираем работу шедулинга горутин и устройство моста между Go и С/С++. Слушатели узнают, как мы отслеживаем аллокации памяти и сопрягаем данные между языками.

C++-разработчик с 14-летним опытом. Разрабатывает кросс-платформенные системные приложения под Linux/Windows. Имел опыт архитектурной и алгоритмической оптимизации системы процессинга банковских транзакций. Занимался разработкой, поддержкой и оптимизацией кастомного XMR-майнера. В разработке мотивируется стремлением к созданию высокопроизводительного и чистого кода. В последний год является C++ backend-разработчиком продукта «хранилище для мониторинга» в Deckhouse.

Deckhouse

Deckhouse — российский вендор, разработчик продуктов для построения надежной enterprise-инфраструктуры. Лидер рынка DevOps и №1 контрибьютор Kubernetes в России, 7 лет в эксплуатации, более 170 внедрений и референсные клиенты из самых разных отраслей.

Видео