Быстрые и блокирующие вызовы С/С++ из Go без Ассемблера
Доклад принят в программу конференции
Целевая аудитория
Тезисы
CGO — это классный и удобный инструмент, позволяющий вызывать любые С/С++ функции, не боясь заблокировать свою Go-программу. Но за такое удобство приходится расплачиваться. Помимо overhead на каждый С вызов, вас могут ждать еще несколько неявных проблем связанных с рантаймом Golang, которые будут просаживать производительность вашего высоконагруженного сервиса. Что за проблемы и как их решить — рассмотрим в этом докладе.
Что еще будет:
Как работает CGO под капотом.
К каким проблемам приводит долгий С вызов из Go.
Пути решения и пасхалки в исходниках Golang.
Делаем быстрый и блокирующий С вызов из Go.
Почему компилятор будет нам мешать.
Пример сервера и бенчмарки
Занимался software и hardware разработкой, в том числе и reverse engineering. Сейчас Golang инженер в команде хранения данных(СХД). Работаю на стыке Go и системного программирования.
YADRO
Видео
Другие доклады секции
Инструменты на Go и для Go