我试图弄清楚pprof是如何计算Go应用程序输出中每个节点的%cum的。我已经将pprof png输出的一部分附加在pprof输出的这一部分中,以排除我正在试图解决的pprof png输出问题,这里有两个节点:
节点A)运行时扫描对象-
flat=1.06s %flat=5.54% cum=1.64s %cum=8.57%
节点B)运行时查找对象(扫描对象正在调用)-
flat=0.46s %flat=2.4% cum=0.54s %cum=2.82%
没有计算累积A的元数,这些数字不等于函数A的累积数(1.64s):
A单位+B单位= 1.06s + 0.46s = 1.52s A平坦+B+ cum = 1.06s + 0.54s = 1.6s
有一件事可以解释这种差异,那就是pprof下拉累积量小于0.10s,所以可能有一些与节点A相关的次要函数,而这些函数在pprof输出中丢失了。如果这是根本原因,我想知道是否有办法让pprof生成完整的pprof输出。
谢谢
发布于 2019-09-18 03:05:36
可以使用--trim=false显示报表中的所有节点。
https://github.com/google/pprof/blob/master/internal/driver/commands.go#L165
https://stackoverflow.com/questions/57983055
复制相似问题