解释 gprof 结果和粒度
Posted
技术标签:
【中文标题】解释 gprof 结果和粒度【英文标题】:Interpreting gprof result and granularity 【发布时间】:2014-01-04 11:58:42 【问题描述】:我第一次使用 gprof 分析 C 程序。以下行出现在我使用生成的报告中;
$ gprof test_gprof gmon.out > analysis.txt
在平面轮廓中
每个样本计为 0.01 秒。
这是时间的最大分辨率吗?
在调用图中:
粒度:每个样本命中覆盖 4 个字节,占 0.13 的 7.69% 秒
这里的 4 个字节到底是什么?它在说什么时间?
【问题讨论】:
你读过这个:ftp.gnu.org/old-gnu/Manuals/gprof-2.9.1/html_chapter/… 吗? 【参考方案1】:请阅读此manual 的第 5.1 和 5.2 章。您也可以在 CentOS 上使用以下命令阅读本手册:
$ info gprof
在平面轮廓中,
每个样本计为 0.01 秒。
表示采样周期为 100Hz,它不受 gprof 本身控制(查看此page 和此one 了解更多详细信息)。所以0.01 seconds
理论上并不是时间上的最大分辨率。
至于调用图,根据 Oracle 的 doc,
“4 字节”表示解析为单个指令。 “14.74 秒的 0.07%”表示每个样本,代表十毫秒的 CPU 时间,占运行的 0.07%。
【讨论】:
以上是关于解释 gprof 结果和粒度的主要内容,如果未能解决你的问题,请参考以下文章