我关注的是围棋博客here
我试图分析我的程序,但是看起来有些不同。 (似乎已经从采样过渡到了仪器?)
我想知道这些数字是什么意思
尤其是showing nodes accounting for 2.59s, 92.5% of 2.8
总样本= 2.8秒意味着什么?采样间隔为2.8秒?
这是否意味着仅运行超过92.5%样本的节点 时间显示了吗?
我也不知道这些数字是生成的。在原始的go博客中,量度是在所有示例中检测到执行该功能的次数。但是,我们在这里处理秒数。剖析工具如何知道函数调用需要多少秒。
任何帮助将不胜感激
答案 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%。