如何计算 pprof 输出并避免 pprof 丢弃 cum 小于 0.10s 的节点

How to calculate pprof output and avoid pprof to drop nodes which their cum is less than 0.10s

我想弄清楚 pprof 如何计算我的 Go 应用程序输出中每个节点的 %cum。 我附上了我的 pprof png 输出的一部分以强调我试图找出的问题 pprof png output 在这部分 pprof 输出中有两个节点:

节点 A) 运行时扫描对象 -

flat=1.06s %flat=5.54%

cum=1.64s %cum=8.57%

节点 B) 运行时 findobject(被 scanobject 调用)-

flat=0.46s %flat=2.4%

cum=0.54s %cum=2.82%

不管累积 A 是如何计算的,数字总和不等于 func A cumulative (1.64s):

A flat + B flat = 1.06s + 0.46s = 1.52s

A flat + B cum = 1.06s + 0.54s = 1.6s

可能解释这种差异的一件事是 pprof 下降了小于 0.10s 的累积值,因此 pprof 输出中可能缺少与节点 A 相关的次要函数。 如果这是根本原因,我想知道是否有办法告诉 pprof 进行完整的 pprof 输出

谢谢

您可以使用--trim=false显示报表中的所有节点

https://github.com/google/pprof/blob/master/internal/driver/commands.go#L165