首页  >  文章  >  后端开发  >  为什么我的 pprof 工具为我的 Golang 应用程序生成不正确的输出?

为什么我的 pprof 工具为我的 Golang 应用程序生成不正确的输出?

Barbara Streisand
Barbara Streisand原创
2024-11-01 13:11:29679浏览

 Why is my pprof tool producing incorrect output for my Golang application?

Golang 中的 pprof 工具发生故障

尽管 pprof 工具之前运行有效,但它突然恶化,无论分析目标如何,都会生成错误的输出。此问题会影响 cpu 和 memprofiling,产生与分析应用程序的复杂性相比极其贫瘠的调用图。

受影响的 Web 应用程序运行良好,接收数百万个请求并生成适当的响应。几天前,该问题在 macOS Yosemite 上突然出现,甚至在升级到 El Capitan 后仍然存在。

有问题的应用程序导入“github.com/davecheney/profile”包并在主函数中启动分析通过“defer profile.Start(profile.MemProfile).Stop()”。但是,pprof 工具在调用时似乎会出现故障:

go tool pprof /var/folders/26/2sj70_sn72l_93j7tf6r07gr0000gn/T/profile614358295/mem.pprof

此调用忽略了分析的二进制文件。要解决此问题,应按如下方式调用该工具:

go tool pprof ./orig /var/folders/26/2sj70_sn72l_93j7tf6r07gr0000gn/T/profile614358295/mem.pprof

其中“orig”表示启用分析后构建的二进制文件。此修改应将 pprof 工具恢复到以前的功能。

以上是为什么我的 pprof 工具为我的 Golang 应用程序生成不正确的输出?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn