Pull to refresh
15
0
Владимир Пустовалов@cherep58

C++ backend developer

Send message

FastCGo: как мы ускорили вызов C-кода в Go в 16,5 раза

Level of difficultyHard
Reading time19 min
Reach and readers5.5K

В Deckhouse Prom++ мы переписали ядро хранения и обработки горячих данных на C++, при этом вся оркестрация и периферия остались в Prometheus на Go, что позволило сохранить полную совместимость с Prometheus. Для частых вызовов кода C++ мы использовали механизм CGo, однако первые тесты показали, что производительность CPU практически не улучшилась из-за его медлительности. В итоге мы переписали CGo, создав собственный механизм вызова.

В статье разберём, что такое CGo и почему он такой медленный, сделаем простейший собственный механизм CGo-вызова и доведём этот механизм до полноценного решения.

Читать далее

Information

Rating
Does not participate
Registered
Activity

Specialization

Бэкенд разработчик, Системный инженер
Ведущий
C++
C
Системное программирование
Высоконагруженные системы
PHP
JavaScript
Golang