Как я могу получить образцы при запуске go с включенным pkg / profile? - PullRequest
0 голосов
/ 13 сентября 2018

В моем главном блоке есть следующее:

func main() {
    defer profile.Start().Stop()

    fmt.Println("running version", version, "built on", date)
    fmt.Println()
    cmd.Execute()

    time.Sleep(2 * time.Second)
}

, где cmd - подкоманда кобры.Я делаю сборку, а затем запускаю бинарный файл.Я вижу, что он генерирует файл pprof:

2018/09/13 18:43:26 profile: cpu profiling enabled, /tmp/profile705487093/cpu.pprof
... output deleted ...
2018/09/13 18:43:31 profile: cpu profiling disabled, /tmp/profile705487093/cpu.pprof

Затем я пытаюсь проанализировать его, используя:

go tool pprof /root/code/debug/evented /tmp/profile705487093/cpu.pprof

Но когда открывается pprof, я вижу это:

File: evented
Type: cpu
Time: Sep 13, 2018 at 6:43pm (UTC)
Duration: 5.49s, Total samples = 0

Если это поможет, я запускаю go version go1.11 linux/amd64 на Ubuntu 16.04.5 LTS.Не уверен, имеет ли это значение, но я пытаюсь проверить вывод pprof на капле DigitalOcean.

Есть ли что-то, что я делаю неправильно?Спасибо!

1 Ответ

0 голосов
/ 14 сентября 2018

Посмотрев немного в комментариях к профилю pkg, мне удалось получить несколько примеров, выполнив следующее:

runtime.SetCPUProfileRate(5000)

перед вызовом линии defer profile.Start().Stop().

...