计算程序运行时间 C语言 clock()函数版
文章作者:Slyar 文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作。
自己没事可以看看程序的运行时间,第一个想到的还是以前会的clock() ,先把代码扔这。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
clock_t begin, end;
double cost;
begin = clock();
/* 程序代码 */
end = clock();
cost = (double)(end - begin) / CLOCKS_PER_SEC;
printf("%lf seconds\n", cost);
system("pause");
return 0;
}
这个函数返回开启进程和调用clock()之间的的CPU时钟计时单元(clock tick)数,在MSDN中称之为挂钟时间(wal-clock),每过千分之一秒(1毫秒),调用clock()函数返回的值就加1。
但是是我感觉这段程序有两个问题,很不爽。第一是精度,只能精确到1ms,低于1ms的程序全部输出0ms,因为WinNT的时间精度最小是1ms;第二是准确度,printf()的速度太快了,基本上和clock()的速度一样,所以误差很大很大。。。
不晓得在Win下怎么才能提高计算精度。。。
重复N次,总计时/N
秒针需要长浮点型么?
不,有更精确的,查查msdn把,精确到每一个时钟周期
Slyar 回复:
十月 18th, 2008 at 23:12
郁闷,我看过,没找到。就2个可以用。
GetTickCount,10+ms
timeGetTime,1ms
Windows API.
Slyar 回复:
十月 17th, 2008 at 23:58
API貌似最小也是ms啊。。。
好的 呵呵
以前你加我了,现在没了
Slyar 回复:
十月 17th, 2008 at 16:16
在链接页面。
博主能否加我连接?
Slyar 回复:
十月 17th, 2008 at 16:14
一直都加着的。