【问题标题】:how to use gprof in Linux?如何在 Linux 中使用 gprof?
【发布时间】:2011-07-25 12:42:03
【问题描述】:

我在文件 test.c 中有一个 C 代码。我必须使用 grof 对其进行分析。我已使用以下命令来执行此操作。

gcc -p -o result test.c
./result
gprof result

输出的一部分如下所示:

`平面配置文件: 每个样本计为 0.01 秒。 没有时间积累

% 累计自我自我总计
time seconds 秒调用 Ts/调用 Ts/调用名称`

问题是无论我使用什么复杂或简单的程序每个样本计数都不会从 0.01 秒开始变化。为什么会这样,并且没有时间累积并显示在各个列下。

【问题讨论】:

  • 还有其他方法可以做到吗? “必须”意味着我必须对其进行分析我并不一定意味着使用 gprof。
  • 好吧,当我的目标是定位要优化的代码以使应用程序尽可能快(而不是仅仅测量需要多长时间)时,this is how I do it。我已经这样做了很长时间了,但我仍然很困惑,这并不是简单地被认为是显而易见的。

标签: linux gprof


【解决方案1】:

您在 gcc 中使用了错误的命令行选项。 -p 用于不同的旧分析器 - 对于 gprof,您需要 -pg

如果您仍然没有看到任何时间累积,这只是意味着您的程序没有消耗足够的 CPU 时间来注册 - gprof 使用基于样本的分析,并且运行时间不够长,无法采集任何样本.

【讨论】:

  • 你能推荐另一种分析 CPU 消耗的方法吗?
猜你喜欢
  • 1970-01-01
  • 2014-12-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多