Ответ
Pprof — это инструмент профилирования в Go, встроенный в стандартную библиотеку net/http/pprof. Он помогает анализировать производительность приложения, выявляя узкие места: утечки памяти, нагрузку CPU, блокировки и т.д.
Как использовать:
- Подключите pprof в своём HTTP-сервере:
import _ "net/http/pprof"
go func() {
log.Println(http.ListenAndServe("localhost:6060", nil))
}()
- Профилируйте через браузер или утилиту
go tool pprof:
go tool pprof http://localhost:6060/debug/pprof/heap
Основные профили:
heap— распределение памятиprofile— нагрузка CPUgoroutine— стектрейсы горутинblock— блокировки
Пример визуализации через веб-интерфейс:
go tool pprof -http=:8080 http://localhost:6060/debug/pprof/profile