一部分代码的CPU运行时间

时间:2009-11-21 17:46:30

标签: c time cpu

我想知道一部分代码使用的CPU时间。(我知道linux中的time命令,但是这会给我整个程序的运行时间,而不是它的一部分。) 是否有任何功能/命令可以帮助我实现这一目标。

谢谢

4 个答案:

答案 0 :(得分:4)

标准C库中的clock()函数给出了自进程启动以来使用的CPU时间量,因此您可以比较“之前”和“之后”值以获得使用的时间:

#include <time.h>
#include <stdio.h>

...

clock_t t0, t1;

t0 = clock();
// do computation
t1 = clock();

printf("Computation took %dms\n", (int)((t1-t0) * 1000 / CLOCKS_PER_SEC));

其他语言将具有与分析器类似的功能,以获得更高级的时序信息;如果您有特定目标,请发布更多详细信息。

答案 1 :(得分:0)

当我在linux上开发软件时,我使用Callgrind and KCachegrind来分析我的代码。它可以显示单个方法占用程序总执行时间的时间等等。

另一种选择是通过将相关代码包含在gettimeofday()之类的时序功能来自行检查。

答案 2 :(得分:0)

在C / C ++中:
http://www.gnu.org/s/libc/manual/html_node/CPU-Time.html
这种方式在java

P.S:这两个是google的第一个结果。

另外,如果您对测量CPU周期而不是CPU时间感兴趣, 你可以使用this

答案 3 :(得分:0)

在Haskell中,您可以实现getCPUtime monad来获取代码main部分中函数之间的时差。