当 运行 启用 pkg/profile 时,如何获取样本?
How can I get samples when running go with pkg/profile enabled?
我的主块中有以下内容:
func main() {
defer profile.Start().Stop()
fmt.Println("running version", version, "built on", date)
fmt.Println()
cmd.Execute()
time.Sleep(2 * time.Second)
}
其中 cmd
是一个 cobra 子命令。我执行 go build,然后 运行 二进制文件。我可以看到它生成了一个 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
。不确定它是否重要,但我正在尝试检查 DigitalOcean 液滴上的 pprof 输出。
我做错了什么吗?谢谢!
在浏览了配置文件 pkg 的注释后,我设法获得了一些示例,方法是:
runtime.SetCPUProfileRate(5000)
在调用 defer profile.Start().Stop()
行之前。
我的主块中有以下内容:
func main() {
defer profile.Start().Stop()
fmt.Println("running version", version, "built on", date)
fmt.Println()
cmd.Execute()
time.Sleep(2 * time.Second)
}
其中 cmd
是一个 cobra 子命令。我执行 go build,然后 运行 二进制文件。我可以看到它生成了一个 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
。不确定它是否重要,但我正在尝试检查 DigitalOcean 液滴上的 pprof 输出。
我做错了什么吗?谢谢!
在浏览了配置文件 pkg 的注释后,我设法获得了一些示例,方法是:
runtime.SetCPUProfileRate(5000)
在调用 defer profile.Start().Stop()
行之前。