pprof имеет разный оверхед в зависимости от профиля:
- CPU profiling: ~5% оверхед. Сэмплирует стеки каждые 10ms (100 Hz). Безопасно в проде кратковременно
- Heap profiling: минимальный, ~0-1%. Сэмплирует аллокации (по умолчанию каждые 512 KB). Можно держать включённым постоянно
- Goroutine profiling: stop-the-world на сбор стеков. Оверхед зависит от количества горутин. Тысячи горутин — может быть заметно
- Mutex/Block profiling: добавляет атомарные операции на каждую блокировку. 1-5% оверхед
import _ "net/http/pprof"
go http.ListenAndServe(":6060", nil)
В проде обычно оставляют endpoint открытым, но профилируют по запросу через go tool pprof.