Go 工具 pprof 失败:无论分析目标如何,都会出现一致的输出缺陷
pprof 工具以前在 Go 应用程序中可靠地进行性能分析,现在一直遇到一个问题,无论目标应用程序如何,它始终会产生损坏和贫瘠的输出。这个问题影响了各种应用程序,包括 Web 应用程序,甚至在操作系统升级后仍然存在。
一个值得注意的例子是,pprof 生成输出,而不是生成详细的调用图或提供最顶层函数调用的列表类似于:
269.97kB of 269.97kB total ( 100%) flat flat% sum% cum cum% 269.97kB 100% 100% 269.97kB 100%
为了生成配置文件,开发人员使用 Go v1.5.1 中的“github.com/davecheney/profile”包。下面是他们的分析过程的总结:
预期,命令行应该显示消息“内存分析已启用”,后跟配置文件的路径(例如 /var/folders/.../mem.pprof)。
当代码按预期运行时,pprof对输出文件 (/path/to/profile.pprof) 的分析为故障排除提供的信息不足。
解决方案:
问题在于 pprof 调用。用户在调用 go tool pprof 时错误地省略了二进制文件名称。要解决此问题,必须指定二进制文件以及配置文件路径:
go tool pprof ./binary_name /path/to/profile.pprof
此修改可确保 pprof 分析预期的二进制文件,从而产生预期的详细性能分析输出。
以上是为什么即使在分析我的应用程序时,我的 Go 工具 pprof 输出也是空白?的详细内容。更多信息请关注PHP中文网其他相关文章!