All streams
Search
Write a publication
Pull to refresh
15
0
Владимир Пустовалов @cherep58

C++ backend developer

Send message

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

Level of difficultyHard
Reading time19 min
Views8.4K

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

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

Читать далее

Information

Rating
Does not participate
Registered
Activity

Specialization

Backend Developer, System Software Engineer
Lead
C++
C
System Programming
High-loaded systems
PHP
JavaScript
Golang