最新消息:点击查看大S的省钱秘笈

计算程序运行时间 C语言 clock()函数版

编程相关 Slyar 359浏览 0评论

文章作者:姜南(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下怎么才能提高计算精度。。。

转载请注明:Slyar Home » 计算程序运行时间 C语言 clock()函数版

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

网友最新评论 (14)

  1. 不错哦,今天我刚好用到,借鉴了
    邓安良4年前 (2012-11-12)回复
  2. 一堆不懂。。
    seven5年前 (2011-12-30)回复
  3. 时间精度的问题 可以 把结果 乘以一个大一点的数 应该可以出结果吧
    匿名5年前 (2011-10-21)回复
  4. 重复N次,总计时/N
    匿名8年前 (2009-07-10)回复
  5. 秒针需要长浮点型么?
    keen8年前 (2008-10-20)回复
  6. 不,有更精确的,查查msdn把,精确到每一个时钟周期
    felix0218年前 (2008-10-18)回复
    • 郁闷,我看过,没找到。就2个可以用。 GetTickCount,10+ms timeGetTime,1ms
      Slyar8年前 (2008-10-18)回复
  7. Windows API.
    Felix0218年前 (2008-10-17)回复
    • API貌似最小也是ms啊。。。
      Slyar8年前 (2008-10-17)回复
  8. 好的 呵呵
    zonghua8年前 (2008-10-17)回复
  9. 以前你加我了,现在没了
    zonghua8年前 (2008-10-17)回复
  10. 博主能否加我连接?
    zonghua8年前 (2008-10-17)回复