1

我正在尝试测量 C 中代码块的执行时间。我的代码中有这样的内容:

clock_t begin, end;
double time_spent;
begin = clock();
ATL_dsymv(122,n,alfa,A,n,X,1,beta,Y,1);
end = clock();
time_spent = (double)(end - begin) / CLOCKS_PER_SEC;
printf ("(%f seconds)",time_spent);

但它总是返回:(0.000000 秒)。我在 for 等更简单的代码块上尝试了相同的操作,但结果相同。我究竟做错了什么?非常感谢。

4

1 回答 1

4

clock通常分辨率很差,大约为 10 毫秒。这很可能是您的问题。如果您使用的是 POSIX 系统,clock_gettime请与CLOCK_PROCESS_CPUTIME_ID时钟一起使用以获得高分辨率结果。其他类型的系统可能具有特定于系统的方法来实现相同的目标。

于 2013-04-04T22:56:09.783 回答