Стандартный способ - пакет runtime/pprof:
f, _ := os.Create("cpu.prof")
defer f.Close()
pprof.StartCPUProfile(f)
defer pprof.StopCPUProfile()Для сервиса часто подключают net/http/pprof и скачивают профиль по HTTP: GET /debug/pprof/profile?seconds=30.
Анализ: go tool pprof cpu.prof. Команда top показывает функции по времени (flat и cum).