gpt4 book ai didi

linux - Pprof 和 golang - 如何解释结果?

转载 作者:IT王子 更新时间:2023-10-29 00:58:48 27 4
gpt4 key购买 nike

我正在尝试在我的程序中使用 pprof,但是,我的结果与我阅读的文章(下面的链接)略有不同。在我的结果中,我得到这样的表格:

(pprof) top10
1.65s of 1.72s total (95.93%)
Showing top 10 nodes out of 114 (cum >= 0.01s)
flat flat% sum% cum cum%
1.19s 69.19% 69.19% 1.20s 69.77% syscall.Syscall
0.16s 9.30% 78.49% 0.16s 9.30% runtime._ExternalCode

这些列是什么:flat flat% sum% cum cum%

我正在阅读的文章: https://software.intel.com/en-us/blogs/2014/05/10/debugging-performance-issues-in-go-programs http://blog.golang.org/profiling-go-programs

最佳答案

平和暨

假设有一个函数foo,它由3个函数和一个直接操作组成。

func foo(){
a() step1
b() step2
do something directly. step3
c() step4
}

想象一下当你调用函数foo时,需要6秒,时间分布如下。

func foo(){
a() // step1 takes 1s
b() // step2 takes 1s
do something directly. // step3 takes 3s
c() // step4 takes 1s
}
  • flat 是在步骤 3 上花费的时间。
  • cum 是foo的总执行时间,包含子函数调用和直接操作。 (cum = step1+ step2+ step3+ step4)

总和%

当您在 pprof 控制台中运行 top 时,每行输出代表在特定功能上花费的时间。 Sum% 表示前几行花费了多少时间/内存。

为了解释这个指标,我选择了另一个包含更多行的例子。第四行的 sum% 的值为 45.17%。是这样计算的:

line1 19.33%
line2 13.27%
line3 6.60%
line4 5.97%
-----------
sum% 45.17%

enter image description here

sum%的应用

sum% 可以帮助您快速识别大石头。下面是内存分配报告的另一个例子。

可以看到前四个函数消耗了 91.06% 的内存。如果我想做一些性能调整,我应该关注前四个功能。第四个以下的函数都可以忽略。

enter image description here

引用

Reddit: What is the meaning of "flat" and "cum" in golang pprof output

关于linux - Pprof 和 golang - 如何解释结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32571396/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com