如何解释cpu分析图

时间:2018-08-01 08:01:49

标签: go profiling

我关注的是围棋博客here

我试图分析我的程序,但是看起来有些不同。 (似乎已经从采样过渡到了仪器?)

我想知道这些数字是什么意思

enter image description here

enter image description here

尤其是showing nodes accounting for 2.59s, 92.5% of 2.8

  1. 总样本= 2.8秒意味着什么?采样间隔为2.8秒?

  2. 这是否意味着仅运行超过92.5%样本的节点 时间显示了吗?

我也不知道这些数字是生成的。在原始的go博客中,量度是在所有示例中检测到执行该功能的次数。但是,我们在这里处理秒数。剖析工具如何知道函数调用需要多少秒。

任何帮助将不胜感激

1 个答案:

答案 0 :(得分:1)

将图视为资源,时间的图。您将从10秒钟开始从顶部开始。然后您将看到5秒到达了time.Sleep,而5秒到达了encoding/json。箭头表示当时特定的划分,因此它们表明程序的每个部分都有5个箭头。因此,现在我们有3个节点,第一个节点10秒,time.Sleep 5秒,encoding/json 5秒。然后,encoding/json中的那5秒钟将进一步分解为大部分时间占用的功能。 0.01s (percentage) out of 0.02s (larger percentage)表示此函数花费了该特定调用堆栈总共0.02s的时间块(带有数字的箭头)中的0.01s的处理时间。百分比表示此部分从整个饼中占用的执行时间的总百分比。因此,您会看到encoding/json string/encoder占用了程序总执行时间/资源的0.36%。

相关问题