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中文网其他相关文章!