FastCGo: как мы ускорили вызов C-кода в Go в 16,5 раза
В Deckhouse Prom++ мы переписали ядро хранения и обработки горячих данных на C++, при этом вся оркестрация и периферия остались в Prometheus на Go, что позволило сохранить полную совместимость с Prometheus. Для частых вызовов кода C++ мы использовали механизм CGo, однако первые тесты показали, что производительность CPU практически не улучшилась из-за его медлительности. В итоге мы переписали CGo, создав собственный механизм вызова. В статье разберём, что такое CGo и почему он такой медленный, сделаем простейший собственный механизм CGo-вызова и доведём этот механизм до полноценного решения.
https://habr.com/ru/companies/flant/articles/923912/
#prom++ #fastcgo #cgo #оптимизация_производительности #go #c++ #оптимизация_кода #разработка_по #prometheus #deckhouse