Что такое Pprof

«Что такое Pprof» — вопрос из категории Golang, который задают на 23% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Pprof — это инструмент профилирования в Go, встроенный в стандартную библиотеку net/http/pprof. Он помогает анализировать производительность приложения, выявляя узкие места: утечки памяти, нагрузку CPU, блокировки и т.д.

Как использовать:

  1. Подключите pprof в своём HTTP-сервере:
import _ "net/http/pprof"

go func() {
    log.Println(http.ListenAndServe("localhost:6060", nil))
}()
  1. Профилируйте через браузер или утилиту go tool pprof:
go tool pprof http://localhost:6060/debug/pprof/heap

Основные профили:

  • heap — распределение памяти
  • profile — нагрузка CPU
  • goroutine — стектрейсы горутин
  • block — блокировки

Пример визуализации через веб-интерфейс:

go tool pprof -http=:8080 http://localhost:6060/debug/pprof/profile