Через ассемблер к плюсам: устройство и оптимизация CGo
Доклад принят в программу конференции
Целевая аудитория
Тезисы
Go отлично подходит для оркестрации сложных взаимодействий. Однако в языке не всегда достаточно возможностей с точки зрения оптимизации ресурсов, например, памяти и процессорного времени. Мы пишем свою систему мониторинга и стремимся минимизировать нагрузку от неё на наблюдаемую систему. Значительную часть логики по компрессии и обработке данных мы написали на C++, но взаимодействие получившегося ядра с основным кодом на Go могло свести на нет все оптимизации.
В докладе мы подробно разбираем работу шедулинга горутин и устройство моста между Go и С/С++. Слушатели узнают, как мы отслеживаем аллокации памяти и сопрягаем данные между языками. Выступление будет одинаково интересно тем, кто активно использует текущую реализацию CGo, и тем, кто только планирует это делать. Также доклад может быть полезен для лучшего понимания рантайма Go.
C++ разработчик с 14 летним опытом. Разрабатывает кроссплатформенные системные приложения под Linux/Windows. Имел опыт архитектурной и алгоритмической оптимизации системы процессинга банковских транзакций. Занимался разработкой, поддержкой и оптимизацией кастомного XMR-майнера. В разработке мотивируется стремлением к созданию высокопроизводительного и чистого кода. В последний год является C++ backend разработчиком продукта «хранилище для мониторинга» в Deckhouse.
Deckhouse
Видео
Другие доклады секции
Проблемы и приключения