gpt4 book ai didi

Golang pprof 完整调用图

转载 作者:行者123 更新时间:2023-12-03 03:47:33 27 4
gpt4 key购买 nike

我对 pprof 还算陌生。我已经开始进行 CPU 分析,并在一段时间后检查了 top25。这就是我得到的:

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 标志生成了图表,这样我就可以看到哪个函数调用了它,但它并没有真正直接显示。有什么办法可以追踪它的来源吗?

最佳答案

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

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

这会给你一个巨大的图表,但很难理解。为了帮助解决此问题,您可以单击 Web View 中的违规节点,然后从左上角的“优化”菜单中选择“焦点”。这提供了该节点及其所有调用者和被调用者的 View 。

查看所有内容所需使用的关键选项是:

--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来加快大图的渲染速度。

--focus=<regexp> Focus on nodes matching <regexp>

关于Golang pprof 完整调用图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49771048/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com