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

tor*_*ido 5 go pprof

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

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

平坦=1.06s %平坦=5.54%

累积=1.64s %累积=8.57%

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

平坦=0.46s %平坦=2.4%

累积量=0.54s %累积量=2.82%

无论累积 A 是如何计算的,数字之和都不会等于 func A 累积 (1.64s):

A降调 + B降调 = 1.06s + 0.46s = 1.52s

A 降调 + B 精液 = 1.06s + 0.54s = 1.6s

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

谢谢

小智 6

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

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