为了账号安全,请及时绑定邮箱和手机立即绑定

无法让 golang pprof 工作

无法让 golang pprof 工作

Go
慕村225694 2021-10-18 10:19:51
我试图分析一些 golang 应用程序,但我不能让它工作,我遵循了这两个教程:http://blog.golang.org/profiling-go-programshttp://saml.rilspace.org/profiling-and-creating-call-graphs-for-go-programs-with-go-tool-pprof两者都说在向应用程序添加一些代码行后,你必须执行你的应用程序,我这样做了,我在屏幕上收到了以下消息:2015/06/16 12:04:00 配置文件:启用 CPU 配置文件,/var/folders/kg/4fxym1sn0bx02zl_2sdbmrhr9wjvqt/T/profile680799962/cpu.pprof所以,我知道正在执行分析,将信息发送到文件。但是,当我看到文件大小时,在我测试的任何程序中,它总是 64 字节。当我尝试使用 pprof 打开 cpu.pprof 文件并执行“top10”命令时,我看到文件中没有任何内容:(“./fact”是我的应用程序)去工具 pprof ./fact /var/folders/kg/4fxym1sn0bx02zl_2sdbmrhr9wjvqt/T/profile680799962/cpu.pprof前10-->(pprof) top10 0 of 0 total (0%) flat flat% sum% cum cum%所以,当我进行分析时,就像什么都没发生一样。我已经在 mac(这个例子)和 ubuntu 中用三个不同的程序测试过它。你知道我做错了吗?然后示例程序非常简单,这是代码(是我从互联网上获取的一个非常简单的阶乘程序):import "fmt"import "github.com/davecheney/profile"func fact(n int) int {      if n == 0 {        return 1      }      return n * fact(n-1)}func main() {      defer profile.Start(profile.CPUProfile).Stop()      fmt.Println(fact(30))}
查看完整描述

2 回答

?
浮云间

TA贡献1829条经验 获得超4个赞

问题是您的函数运行速度太快,而 pprof 无法对其进行采样。尝试在fact调用周围添加一个循环并对结果求和以人为地延长程序。


查看完整回答
反对 回复 2021-10-18
  • 2 回答
  • 0 关注
  • 187 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信