C语言如何计算程序运行时间
来源:互联网 发布:c语言pointer expected 编辑:程序博客网 时间:2024/06/10 11:56
01.C/C++中的计时函数是clock(),而与其相关的数据类型是clock_t。在MSDN中,查得对clock函数定义如下: 02. 03.clock_t clock( void ); 04. 05.这个函数返回从“开启这个程序进程”到“程序中调用clock()函数”时之间的CPU时钟计时单元(clock tick)数,在MSDN中称之为挂钟时间(wal-clock)。其中clock_t是用来保存时间的数据类型,在time.h文件中,我们可以找到对它的定义: 06. 07.#ifndef _CLOCK_T_DEFINED 08.typedef long clock_t; 09.#define _CLOCK_T_DEFINED 10.#endif 11. 12.很明显,clock_t是一个长整形数。在time.h文件中,还定义了一个常量CLOCKS_PER_SEC,它用来表示一秒钟会有多少个时钟计时单元,其定义如下: 13. 14.#define CLOCKS_PER_SEC ((clock_t)1000) 15. 16.可以看到每过千分之一秒(1毫秒),调用clock()函数返回的值就加1。下面举个例子,你可以使用公式clock()/CLOCKS_PER_SEC来计算一个进程自身的运行时间: 17. 18.void elapsed_time() 19.{ 20.printf("Elapsed time:%u secs.\n",clock()/CLOCKS_PER_SEC); 21.} 22. 23.当然,你也可以用clock函数来计算你的机器运行一个循环或者处理其它事件到底花了多少时间: 24. 25.#include “stdio.h” 26.#include “stdlib.h” 27.#include “time.h” 28. 29.int main( void ) 30.{ 31. long i = 10000000L; 32. clock_t start, finish; 33. double duration; 34. /* 测量一个事件持续的时间*/ 35. printf( "Time to do %ld empty loops is ", i ); 36. start = clock(); 37. while( i-- ) ; 38. finish = clock(); 39. duration = (double)(finish - start) / CLOCKS_PER_SEC; 40. printf( "%f seconds\n", duration ); 41. system("pause"); 42.} 43. 44.在笔者的机器上,运行结果如下: 45. 46.Time to do 10000000 empty loops is 0.03000 seconds 47. 48.上面我们看到时钟计时单元的长度为1毫秒,那么计时的精度也为1毫秒,那么我们可不可以通过改变CLOCKS_PER_SEC的定义,通过把它定义的大一些,从而使计时精度更高呢?通过尝试,你会发现这样是不行的。在标准C/C++中,最小的计时单位是一毫秒。
http://blog.csdn.net/querdaizhi/article/details/6925156
- C语言如何 计算程序运行时间?
- C语言如何 计算程序运行时间?
- C语言如何计算程序运行时间
- C语言如何计算程序运行时间
- C语言如何 计算程序运行时间?
- C语言如何 计算程序运行时间
- C语言如何 计算程序运行时间?
- C语言如何 计算程序运行时间?
- C语言中如何计算程序运行的时间
- 计算程序的运行时间(c语言)
- C 语言计算程序运行的时间
- C语言计算程序运行时间
- 计算C语言程序运行时间
- C语言计算程序运行时间
- C语言计算程序运行时间
- 计算程序运行时间 C语言
- C语言如何计算算法运行时间
- 计算程序运行时间 C语言 clock()函数
- java调用存储过程(output和return)
- Linux Shell编程入门
- WIN7_64位系统安装oracle以及PLSQL方法(转)
- 欧拉回路
- Longest Valid Parentheses
- C语言如何计算程序运行时间
- IEnumerable的几个简单用法
- s:iterator 遍历list
- Java 传统行业转向互联网开发
- ~ですか
- android usb mass storage EMMC转化为SD卡(三)
- Join and Where
- android进程讲解
- WIN下开发快捷操作