我正在运行一个C程序,使用GCC和一个专有的DSP交叉编译器来模拟一些功能。我正在使用以下代码来测量我的程序的特定部分的执行时间:
clock_t start,end;
printf("DECODING DATA:\n");
start=clock();
conv3_dec(encoded, decoded,3*length,0);
end=clock();
duration = (double)(end - start) / CLOCKS_PER_SEC;
printf("DECODING TIME = %f\n",duration);
其中
现在的问题是,当我的程序运行时,
我以前使用
对于两小时这样的持续时间,我不会太在意
如果您想要实际经过的时间,只需使用
#include <stdio.h>
#include <time.h>
// Dummy stuff starts here
#include <unistd.h>
#define encoded 0
#define decoded 0
#define length 0
static void conv3_dec (int a, int b, int c, int d) {
sleep (20);
}
// Dummy stuff ends here
int main (void) {
time_t start, end, duration;
puts ("DECODING DATA:");
start = time (0);
conv3_dec (encoded, decoded, 3 * length, 0);
end = time (0);
duration = end - start;
printf ("DECODING TIME = %d\n", duration);
return 0;
}
它生成:
DECODING DATA:
DECODING TIME = 20
也可以考虑使用
gettimeofday()函数应获取当前时间,表示为Epoch以来的秒和微秒,并将其存储在TP指向的timeval结构中。未指定系统时钟的分辨率。
计算C程序中的运行时间(以毫秒为单位)
http://www.ccplusplus.com/2011/11/gettimeofday-example.html