C语言如何 计算程序运行时间?
来源:互联网 发布:php redis抢红包源代码 编辑:程序博客网 时间:2024/05/16 18:41
C/C++中的计时函数是clock(),而与其相关的数据类型是clock_t。在MSDN中,查得对clock函数定义如下:clock_t clock( void );这个函数返回从“开启这个程序进程”到“程序中调用clock()函数”时之间的CPU时钟计时单元(clock tick)数,在MSDN中称之为挂钟时间(wal-clock)。其中clock_t是用来保存时间的数据类型,在time.h文件中,我们可以找到对它的定义:#ifndef _CLOCK_T_DEFINEDtypedef long clock_t;#define _CLOCK_T_DEFINED#endif很明显,clock_t是一个长整形数。在time.h文件中,还定义了一个常量CLOCKS_PER_SEC,它用来表示一秒钟会有多少个时钟计时单元,其定义如下:#define CLOCKS_PER_SEC ((clock_t)1000)可以看到每过千分之一秒(1毫秒),调用clock()函数返回的值就加1。下面举个例子,你可以使用公式clock()/CLOCKS_PER_SEC来计算一个进程自身的运行时间:void elapsed_time(){printf("Elapsed time:%u secs.\n",clock()/CLOCKS_PER_SEC);}当然,你也可以用clock函数来计算你的机器运行一个循环或者处理其它事件到底花了多少时间:#include “stdio.h”#include “stdlib.h”#include “time.h”int main( void ){ long i = 10000000L; clock_t start, finish; double duration; /* 测量一个事件持续的时间*/ printf( "Time to do %ld empty loops is ", i ); start = clock(); while( i-- ) ; finish = clock(); duration = (double)(finish - start) / CLOCKS_PER_SEC; printf( "%f seconds\n", duration ); system("pause");}在笔者的机器上,运行结果如下:Time to do 10000000 empty loops is 0.03000 seconds上面我们看到时钟计时单元的长度为1毫秒,那么计时的精度也为1毫秒,那么我们可不可以通过改变CLOCKS_PER_SEC的定义,通过把它定义的大一些,从而使计时精度更高呢?通过尝试,你会发现这样是不行的。在标准C/C++中,最小的计时单位是一毫秒。
- C语言如何 计算程序运行时间?
- C语言如何 计算程序运行时间?
- C语言如何计算程序运行时间
- C语言如何计算程序运行时间
- C语言如何 计算程序运行时间?
- C语言如何 计算程序运行时间
- C语言如何 计算程序运行时间?
- C语言如何 计算程序运行时间?
- C语言中如何计算程序运行的时间
- 计算程序的运行时间(c语言)
- C 语言计算程序运行的时间
- C语言计算程序运行时间
- 计算C语言程序运行时间
- C语言计算程序运行时间
- C语言计算程序运行时间
- 计算程序运行时间 C语言
- C语言如何计算算法运行时间
- 计算程序运行时间 C语言 clock()函数
- linux内核的运行
- 堆与栈存储效率的一点理解
- IP冲突解决方案
- baidu-2011
- JAVA本地方法调用(2)数组参数传递
- C语言如何 计算程序运行时间?
- UNIX环境高级编程第三章文件I/O 读后笔记
- rpc4Django无法并行开多个RPCURL问题
- WM_NOTIFY
- sqlDbx连接mysql 及乱码
- python中用pdb 来调试
- 能够分页显示的Label控件
- 为自己的梦想而奋斗
- MakeFile 文件的作用