clock() – c函数的执行时间

我试图用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秒)。 我在更简单的代码块上尝试了同样的事情,但是它有相同的结果。 我究竟做错了什么? 非常感谢。

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