【问题标题】:Profiling in GO - No symbolsGO 中的分析 - 无符号
【发布时间】:2014-05-03 00:25:42
【问题描述】:

我正在尝试使用此处描述的过程来分析 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

有没有人遇到过这种情况并找到了解决办法?

提到了here6prof 工具可用于替代上述过程。有谁知道它是否仍在维护以及在哪里可以找到它?

我在 Win7 64 上使用 go1.0.2。

谢谢!

【问题讨论】:

    标签: profiling go


    【解决方案1】:

    我修复了 perl 脚本以在 Windows 下工作。

    详情请看:http://exneehilo.blogspot.com.au/2012/07/profiling-go-with-pprof-under-windows.html

    【讨论】:

      【解决方案2】:

      我自己没有检查过,但据我记得,pprof 脚本的问题在于它使用了 standard (mingw) 版本的 nm,而不是 Go 特定的 nm。 Go 发行版有自己的 nm 程序:

      C:>去工具nm 用法:nm [-aghnsTu] 文件... go tool nm: 退出状态 1

      C:>

      它可以理解所有 Go 二进制格式,而 mingw 附带的 nm 程序则不能。在 pprof perl 脚本中查看 nm_commands 变量。它列出了几个可能的候选人,但没有一个是你想要的。如果您将其更改为指向 Go nm,它应该可以工作。

      请随时在此处http://code.google.com/p/go/issues 报告错误。我认为它曾经可以工作,因为 nm_commands 中列出了 6nm,但 Go nm 已重命名为 nm 并移出用户 PATH。

      亚历克斯

      【讨论】:

      • 问题不在于提供的 nm 版本,而在于 perl 脚本和 Windows 终端之间的不兼容。它可能适用于 cygwin 或类似的,但我没有尝试过。我在这里解决了自己的问题:exneehilo.blogspot.com.au/2012/07/…
      【解决方案3】:

      我也有类似的问题。

      解决方案是在实际的建筑应用中。因此,当我使用“go build test_app.go”构建并运行“./test_app”之后,我得到了正确的分析文件,其中包含函数名称。

      【讨论】:

        猜你喜欢
        • 2018-11-11
        • 1970-01-01
        • 2021-06-29
        • 1970-01-01
        • 2016-01-24
        • 1970-01-01
        • 1970-01-01
        • 2020-09-17
        • 2019-02-27
        相关资源
        最近更新 更多