Back to questions
Senior
6
Какие инструменты профилирования есть в Go?
Companies where asked
Lenta Tech
Answer from AI
sobes.tech AI
В Go для профилирования приложений используется пакет net/http/pprof, который позволяет собирать данные о CPU, памяти, блокировках и горутинах. Его можно подключить к HTTP-серверу, и затем через стандартный интерфейс получить профили.
Также есть инструмент go tool pprof для анализа собранных профилей.
Пример подключения pprof в коде:
import (
"net/http"
_ "net/http/pprof"
)
func main() {
go func() {
http.ListenAndServe(":6060", nil) // Профилирование доступно по http://localhost:6060/debug/pprof/
}()
// основной код приложения
}
Для анализа профиля CPU:
go tool pprof http://localhost:6060/debug/pprof/profile?seconds=30
Кроме того, существуют сторонние инструменты, например, pprof визуализатор, go-torch для flamegraph, и интеграции с системами мониторинга (Prometheus, Grafana).