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