登录
首页 >  Golang >  Go问答

在启用 pkg/profile 的情况下运行 go 时如何获取示例?

来源:stackoverflow

时间:2024-03-20 10:03:06 335浏览 收藏

大家好,我们又见面了啊~本文《在启用 pkg/profile 的情况下运行 go 时如何获取示例?》的内容中将会涉及到等等。如果你正在学习Golang相关知识,欢迎关注我,以后会给大家带来更多Golang相关文章,希望我们能一起进步!下面就开始本文的正式内容~

问题内容

我的主块中有以下内容:

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

如果有帮助,我正在 ubuntu 16.04.5 lts 上运行 go 版本 go1.11 linux/amd64。不确定这是否重要,但我正在尝试检查 digitalocean droplet 上的 pprof 输出。

我是不是做错了什么?谢谢!


解决方案


在查看了配置文件 pkg 的注释后,我通过这样做获得了一些示例:

runtime.SetCPUProfileRate(5000)

在调用 defer profile.start().stop() 行之前。

本篇关于《在启用 pkg/profile 的情况下运行 go 时如何获取示例?》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于Golang的相关知识,请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>