Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 如何分析代码段?_C_Performance_Profiling_Gprof - Fatal编程技术网

C 如何分析代码段?

C 如何分析代码段?,c,performance,profiling,gprof,C,Performance,Profiling,Gprof,我需要分析一个用C编写的软件。现在的问题是,虽然gprof或我自己的开始计时器/结束计时器函数调用将为我提供在每个函数中花费的时间,但我不知道每个函数中哪个部分最耗时。有些人可能会将其称为微观优化,但这正是当前的需要 实现这一点的方法之一是“手动”在for循环中放置开始/结束计时器调用(可能有多个)。在这种情况下,更明智的做法是允许使用宏启用/禁用这些调用 但我想自动化这个仪器 你能告诉我是否有一个好的工具可以实现同样的目标吗?如果我可以从脚本中重复调用插入指令的程序,然后找到代码中每个“部分”

我需要分析一个用C编写的软件。现在的问题是,虽然gprof或我自己的开始计时器/结束计时器函数调用将为我提供在每个函数中花费的时间,但我不知道每个函数中哪个部分最耗时。有些人可能会将其称为微观优化,但这正是当前的需要

实现这一点的方法之一是“手动”在for循环中放置开始/结束计时器调用(可能有多个)。在这种情况下,更明智的做法是允许使用宏启用/禁用这些调用

但我想自动化这个仪器

你能告诉我是否有一个好的工具可以实现同样的目标吗?如果我可以从脚本中重复调用插入指令的程序,然后找到代码中每个“部分”花费的平均时间,这将是理想的。目前,节是一个定义松散的术语,但“工具”可以对节有更具体的定义


如果我能以某种方式了解哪些工具将是您可以尝试结合使用(其中一种工具)的工具,这也会很有帮助。另请参见。

我自己没有使用过它,但我听说Valgrind instrumentation framework()有一些工具,可以实现您试图完成的任务所需的非常细粒度的评测。

您希望代码尽可能快地运行,对吗

gprof是一种测量工具。如图所示,它可以帮助评估替代实现。 他们没有说它对于定位需要替代实现的代码是有效的,而且事实并非如此,尽管几乎所有人都认为它是有效的

谬论是测量是定位的,但是如果你想在房间里找到一头大象,你需要测量它才能知道它在那里吗? 不,你睁开眼睛


我也去了佐治亚理工学院。请告诉那里的教授停止销售gprof;-)