首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Golang pprof全调用图

Golang pprof全调用图
EN

Stack Overflow用户
提问于 2018-04-11 17:11:25
回答 1查看 2.3K关注 0票数 1

我对pprof还不太熟悉。我已经开始分析CPU了,并在一段时间后检查了top25。这是我得到的:

代码语言:javascript
复制
Showing top 25 nodes out of 174
      flat  flat%   sum%        cum   cum%
  1.01mins 21.92% 21.92%   1.10mins 23.83%  time.Time.AppendFormat
  0.26mins  5.56% 27.48%   0.26mins  5.56%  type..eq.[65]runtime.sigTabT
  0.23mins  5.07% 32.55%   0.23mins  5.07%  type..hash.[3]runtime.symbol_key
  0.15mins  3.14% 35.69%   0.15mins  3.14%  type..hash.[9]string
  ...

我认为这一切都很酷,我只需要去掉那个时间函数。然后我意识到,我甚至没有使用时间pkg中的任何东西,所以它一定是第三方库,或者是go内部函数之一。

所以我已经生成了带有-web标志的图形,所以我可以看到哪个函数调用了它,但它并没有直接显示出来。有没有办法追踪它是从哪里来的?

EN

回答 1

Stack Overflow用户

发布于 2019-10-19 09:39:03

我一直在使用下面的方法来查看所有内容。

go tool pprof -http :9999 -edgefraction 0 -nodefraction 0 -nodecount 100000 cpu.prof

这会给你一个很难理解的巨大的图表。为了帮助你做到这一点,你可以在web视图中点击有问题的节点,然后从左上角的“细化”菜单中选择“焦点”。这提供了该节点及其所有调用方和被调用方的视图。

要查看所有内容,可使用的关键选项包括:

代码语言:javascript
复制
--nodecount=<n>    Show at most so many nodes [default=80]
--nodefraction=<f> Hide nodes below <f>*total [default=.005]
--edgefraction=<f> Hide edges below <f>*total [default=.001]

您还可以在命令行上使用-focus来加快大型图形的渲染速度。

代码语言:javascript
复制
--focus=<regexp> Focus on nodes matching <regexp>
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49771048

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档