我已经开始分析我的一些 Go1.2 代码,最重要的项目总是名为“etext”的东西。我已经四处搜索,但除了可能与 Go 例程中的调用深度有关之外,找不到更多关于它的信息。但是,我没有使用任何 Go 例程,并且“etext”仍然占总执行时间的 75% 或更多。(pprof) top20 Total: 171 samples 128 74.9% 74.9% 128 74.9% etext任何人都可以解释这是什么以及是否有任何方法可以减少影响?
2 回答
PIPIONE
TA贡献1829条经验 获得超9个赞
我认为 Mathias Urlichs 关于在您的 cgo 代码中缺少调试符号是正确的。值得注意的是,一些标准的 pkgs 如 net 和 syscall 使用了 cgo。
如果您向下滚动到本文档底部的警告部分,您会看到第三个项目符号说...
如果链接到库中的程序没有使用足够的符号信息进行编译,则与该库相关联的所有样本可能会被计入该库之前在程序中找到的最后一个符号。这将人为地增加该符号的计数。
我不是 100% 肯定这就是正在发生的事情,但我打赌这就是 etext 看起来如此忙碌的原因(换句话说,etext 是各种函数的集合,没有足够的信息供 pprof 正确分析。 )。
- 2 回答
- 0 关注
- 261 浏览
添加回答
举报
0/150
提交
取消