tgoop.com/golang_digest/199
Last Update:
Как ускорить свой код с помощью системы непрерывного профилирования Perforator
https://habr.com/ru/companies/yandex/articles/875070
Perforator — это система непрерывного профилирования, которую разработали в Яндексе и недавно выложили в опенсорс. Да, проект написан на C++, а не на Go, но тут интересен сам инструмент, а не его исходный код.
Что интересного рассказывают в статье:
– Как работает Perforator и как его использовать
– Как интерпретировать результаты профилирования
– Как оптимизировать код на основе данных профилирования
А чем интересен сам Perforator:
- Система умеет профилировать как компилируемые языки (C++, Go, Rust), так и интерпретируемые (Python 3.12+)
- Поддерживает FDO (Feedback-driven optimization) — можно автоматически использовать профили для оптимизации новых сборок. По бенчмаркам даёт до 10% прироста производительности
- Интересная фича — профилирование по срезам для A/B-тестов через thread-local теги
- Можно использовать как распределённо (в K8s), так и локально вместо perf record
Из ограничений:
- Нужен root (CAP_SYS_ADMIN)
- Только Linux 5.4+ на x86-64
- ARM пока в разработке
- На больших хостах может съедать несколько GB RAM
————
Зачем мне это, если у нас в Go есть pprof?
Очень полезно смотреть, какие ещё бывают решения, хотя бы в образовательных целях, и не зацикливаться на чём-то одном.
А здесь можно глянуть визуализацию работы сервиса
#profiling #performance #ebpf #opensource