我正在尝试使用下面描述的过程来分析GO程序:
http://blog.golang.org/2011/06/profiling-go-programs.html。
但是,pprof在输出中显示的是地址而不是函数名:
(pprof) top10
Total: 2113 samples
298 14.1% 14.1% 298 14.1% 0000000000464d34
179 8.5% 22.6% 179 8.5% 0000000000418e83
157 7.4% 30.0% 157 7.4% 0000000000418e60
112 5.3% 35.3% 112 5.3% 0000000000403293
101 4.8% 40.1% 101 4.8% 0000000000464d4f
83 3.9% 44.0% 83 3.9% 000000000040329c
77 3.6% 47.7% 77 3.6% 0000000000418e7a
62 2.9% 50.6% 62 2.9% 0000000000456a38
37 1.8% 52.3% 37 1.8% 0000000000418e41
37 1.8% 54.1% 37 1.8% 0000000000435f57有没有人经历过这种情况,并找到了解决办法?
这里提到了一个6prof工具,它可以替代上述步骤使用。有人知道它是否还在维护,在哪里可以找到它吗?
我在Win7 64上使用go1.0.2。
谢谢!
发布于 2012-07-28 23:48:44
我修复了perl脚本,使其可以在Windows下工作。
详情请访问:http://exneehilo.blogspot.com.au/2012/07/profiling-go-with-pprof-under-windows.html
发布于 2012-07-25 07:30:31
我自己没有检查过,但据我所知,pprof脚本的问题是它使用的是标准(mingw)版本的nm,而不是Go特定的nm。Go发行版有自己的nm程序:
C:>go工具nm用法: nm -aghnsTu文件...go工具nm:退出状态1
C:>
它能理解所有的Go二进制格式,而mingw自带的nm程序却不能。查看pprof perl脚本中的nm_commands变量。它列出了几个可能的候选者,但没有一个是你想要的。如果您将其改为指向Go nm,它应该可以工作。
请随时在这里报告错误,http://code.google.com/p/go/issues。我认为它以前是有效的,因为6 nm在nm_commands中列出,但是Go nm已经被重命名为just nm并移出了用户路径。
亚历克斯
发布于 2012-07-27 23:03:09
我也遇到过类似的问题。
解决方案在实际的建筑应用中得到了应用。因此,当我使用"go build test_app.go“进行构建,然后运行"./test_app”之后,我就得到了包含函数名的分析文件。
https://stackoverflow.com/questions/11633468
复制相似问题