首页 > 解决方案 > 如何计算 pprof 输出并避免 pprof 丢弃其 cum 小于 0.10s 的节点

问题描述

我试图弄清楚 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.64 秒):

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

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

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

谢谢

标签: gopprof

解决方案


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

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


推荐阅读