我试图弄清楚 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