我正在尝试启用Go"阻止"通过将以下代码添加到我的主函数中来进行分析:
f, err := os.Create(profFile)
if err != nil {
// Error handling
}
runtime.SetBlockProfileRate(1)
p := pprof.Lookup("block")
defer func() {
err := p.WriteTo(f, 0)
if err != nil {
Logger.Error("Error writing block profile: %v", err)
}
}()
我确实看到在运行应用程序后创建的配置文件,我试图通过运行命令来解释结果:
$ go tool pprof --text <PROFILE_FILE>
29.95mins of 29.95mins total ( 100%)
flat flat% sum% cum cum%
29.95mins 100% 100% 29.95mins 100%
我没有看到关于阻止时间的任何数据。生成块配置文件数据的代码是否正确?或者我可能需要使用不同的选项去&#34;去工具&#34;?任何帮助表示赞赏。
谢谢, Raghu
答案 0 :(得分:1)
正如@JimB在评论中提到的,运行“pprof”的正确方法如下:
$ go tool pprof --text <PATH_TO_BINARY> <PROFILE_FILE>