【问题标题】:Time profiling C program with OSX Instruments 7.2使用 OSX Instruments 7.2 对 C 程序进行时间分析
【发布时间】:2016-07-31 19:19:35
【问题描述】:

我正在使用 OSX El Capitan 和 Instruments 7.2。我想对一个非常简单的 C 程序进行时间分析,只是为了绕过 Instruments 环境。 正如您在附图中看到的那样,由于某种原因,Instruments 提供了有关内部 OS 功能的信息,但没有提供有关我在程序中使用的功能的信息,也没有参考程序的源代码。

这是 C 代码:

#include <stdio.h>

int foo();
int bar();
int main()
{
    foo();
    return 0;
}

int foo()
{
    bar();
    return 0;
 }

int bar()
{
    return 0;
}

遵守使用: gcc -g -Wall 123.c -o 123

Instruments

【问题讨论】:

  • 函数(main 除外)具有不同的签名。使用正确的原型。
  • 一般不要发布外部链接或文字图片。
  • 不幸的是,目前我没有嵌入图片的选项,因此它会自动发布链接。关于原型,您在哪里看到不匹配的地方?
  • 我不知道 Instruments,但是:如果你的函数做的不多(他们做的),它们就不会出现在任何分析信息中。它们的 CPU 时间将消失在 C 启动代码和操作系统的背景噪音中。添加一些实际做某事的代码。
  • 您好 tofro,根据您的建议,我添加了一些 CPU 消耗代码。它确实增加了 CPU 使用率图表,但调用树视图中仍然缺少函数符号...

标签: c macos profiling instruments


【解决方案1】:

幸运的是,在使用 Instruments 时,我找到了解决这个问题的方法。只需按下右侧窗格中的“显示设置”图标(看起来像一个机械轮)。 这将打开一个带有数据挖掘表的窗口,在那里,任何显示为“收费”或“修剪”的函数都可以恢复到调用树视图。

一旦 main 恢复到调用树视图,foo & bar 也会出现,以及匹配的源代码。

【讨论】:

    猜你喜欢
    • 2012-03-10
    • 1970-01-01
    • 2011-04-30
    • 2011-03-19
    • 1970-01-01
    • 1970-01-01
    • 2017-05-12
    • 2021-09-16
    相关资源
    最近更新 更多