Как встроить pprof профайлер?

Middle
681 просмотров
AFK Offer AI

Импортируешь net/http/pprof с side-effect импортом, и он регистрирует обработчики на дефолтном мьюксе:

import _ "net/http/pprof"

go func() { log.Println(http.ListenAndServe(":6060", nil)) }()

После этого доступны эндпоинты: /debug/pprof/profile (CPU), /debug/pprof/heap (память), /debug/pprof/goroutine (горутины), /debug/pprof/trace (трейсинг).

Анализ: go tool pprof http://localhost:6060/debug/pprof/heap. В проде рекомендуется вешать на отдельный порт, недоступный извне.

Следующий вопрос

Что такое системный вызов?