Sobes.tech
Назад к вопросам
Senior
5

Какие инструменты профилирования есть в Go?

Компании, где спрашивали
Lenta Tech

Ответ от нейросети

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).