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

Быстрые и блокирующие вызовы С/С++ из Go без Ассемблера

Инструменты на Go и для Go

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

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

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

Разработчики высоконагруженных Golang сервисов, которые хотят оптимизировать обработку запросов с большим количеством С/С++ вызовов из Go-кода. А так же тем кто интересуется внутренностями Golang рантайма и работой компилятора.

Тезисы

CGO — это классный и удобный инструмент, позволяющий вызывать любые С/С++ функции, не боясь заблокировать свою Go-программу. Но за такое удобство приходится расплачиваться. Помимо overhead на каждый С вызов, вас могут ждать еще несколько неявных проблем связанных с рантаймом Golang, которые будут просаживать производительность вашего высоконагруженного сервиса. Что за проблемы и как их решить — рассмотрим в этом докладе.

Что еще будет:
Как работает CGO под капотом.
К каким проблемам приводит долгий С вызов из Go.
Пути решения и пасхалки в исходниках Golang.
Делаем быстрый и блокирующий С вызов из Go.
Почему компилятор будет нам мешать.
Пример сервера и бенчмарки

Занимался software и hardware разработкой, в том числе и reverse engineering. Сейчас Golang инженер в команде хранения данных(СХД). Работаю на стыке Go и системного программирования.

YADRO

Если вы пишете софт в большой российской ИТ-компании, банке или ритейлере, скорее всего ваши сервисы крутится, а данные ваших клиентов хранятся на нашем железе. Мы создаем - от плат до кода - то, без чего невозможно представить современную связь и интернет: системы хранения данных, серверы, коммутаторы, базовые станции 2G/4G и клиентские устройства. Пожалуй, одни из самых интересных исследовательских задач для Go, C++ разработчиков и не только вы встретите у нас.

Видео