去探查器(pprof)时间差异

时间:2017-02-23 03:53:07

标签: go runtime profiling gperftools

当我使用Linux的time实用程序测量Go程序的运行时间时,我得到以下输出:

real    1m9.177s
user    7m1.788s
sys     0m39.016s

当我在Go的pprof CPU分析器中查看相同的程序执行输出时,我得到以下输出:

Entering interactive mode (type "help" for commands)
(pprof) top
143.32s of 176s total (81.43%)

pprof从这个176s数字到哪里?既不是时钟时间也不是CPU时间。我正在运行此程序,GOMAXPROCS设置为8,我觉得这与它有关。 pprof如何衡量运行时间,为什么它与linux time不同?

1 个答案:

答案 0 :(得分:0)

这看起来像是一些bug。可能是一些已知的bug。为了输出176s,pprof所做的是将已知采样周期乘以样本数。它应该是相当准确的w.r.t.进程(系统+用户)花费的总CPU时间。

您的程序是否有可能通过子进程生成一些工作?这可能是解释差异的一种方式。