A-A+

clock()/CLOCKS_PER_SEC函数计算程序运行时间

2013年05月24日 C++函数 评论 1 条 阅读 2,054 次
clock()函数计算程序运行时间,那么为什么要除以CLOCKS_PER_SEC呢?
答案1.这是因为clock()是以毫秒为单位,要正确输出时间差需要把它换成秒,因此需要除以CLOCKS_PER_SEC。   clock()函数计算出来的是硬件滴答的数目,不是毫秒。在TC2.0中硬件每18.2个滴答是一秒,在VC++6.0中硬件每1000个滴答是一秒。
答案2.
clock函数返回进程运行时间,但是这个运行时间单位不是秒,而是CPU运行的时钟周期计数。
所以要得到消耗的时间(秒),需要除以CPU时钟频率,也就是CLOCKS_PER_SEC.以得到一个以秒为单位的数值。
至于CLOCKS_PER_SEC是什么?
答案:
一秒钟有几个嘀嗒的意思。它是宏定义常量。
调用 time.h 里的clock() 返回的数就是从程序开始运行起 总计的 嘀嗒嘀嗒嘀嗒 的个数。除以CLOCKS_PER_SEC,就得到时间 秒数。
例子:
[cpp]#include <stdio.h>
#include <time.h>
int main()
{
int i;
for(i=0;i<960000000;i++);
printf("%.2lf\n",(double)clock()/CLOCKS_PER_SEC);
return 0;
}

[/cpp]

运行结果:
[cpp]F:\work>29
3.19

F:\work>

[/cpp]

标签:

1 条留言  访客:1 条  博主:0 条

  1. xxxx

    看到代码,就有一个淡淡的忧伤~

给我留言

Copyright © C/C++程序员之家 保留所有权利.   Theme  Ality 浙ICP备15011757号-3

用户登录