我想知道一部分代码使用的CPU时间。(我知道linux中的time命令,但是这会给我整个程序的运行时间,而不是它的一部分。) 是否有任何功能/命令可以帮助我实现这一目标。
谢谢
答案 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
另外,如果您对测量CPU周期而不是CPU时间感兴趣, 你可以使用this。
答案 3 :(得分:0)
在Haskell中,您可以实现getCPUtime
monad来获取代码main
部分中函数之间的时差。