C 语言时间函数的使用
2013-09-21 16:00
134 查看
#include <stdio.h> #include <time.h> #include <stdlib.h> int main() { double sum=0.0; int j,k; double duration; clock_t start,end; start = clock(); for(j=0;j<100000000;j++) { for(k=0;k<10;k++) sum=sum+1.0; } end = clock(); duration = (double)(end - start) / CLOCKS_PER_SEC; printf( "%f seconds\n", duration ); getchar(); }
时间函数使用参考了@http://blog.csdn.net/querdaizhi/article/details/6925156?reload这里我拿来实践了一下。
说明:
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_DEFINED
typedef long clock_t;
#define _CLOCK_T_DEFINED
#endif
在使用过程中主要用到时间函数clock,时间函数相关的一个结构clock_t,还有CLOCKS_PER_SEC。
clock_t是一个长整形数。在time.h文件中,还定义了一个常量CLOCKS_PER_SEC, 它用来表示一秒钟会有多少个时钟计时单元,其定义如下: #define CLOCKS_PER_SEC 1000 可以看到每过千分之一秒(1毫秒),调用clock()函数返回的值就加1。
上面我们看到时钟计时单元的长度为1毫秒,那么计时的精度也为1毫秒, 那么既然都是宏定义的值,通过改变CLOCKS_PER_SEC的定义,通过把它定义的改变,计时的结果会不会改变? 尝试之后,你会发现这样是不行的。在标准C/C++中,最小的计时单位是一毫秒。
相关文章推荐
- linux 时间格式化函数strftime和strptime使用
- oprofile 使用步骤 测试程序中各函数运行时间----步骤
- mysql 时间戳格式化函数from_unixtime使用说明
- 使用递推法求解Fibonacii数列并用C++函数记录运行时间
- SQL语句使用时间和日期的函数
- sql server时间函数使用
- 使用时间函数查询
- Linux时间函数之gettimeofday()函数之使用方法
- C/C++时间函数的使用
- Linux时间函数之 gettimeofday() 函数之使用方法
- C++ 如何使用时间函数(2)--记忆游戏
- 使用Intel编译器(5)PGO(3)评测函数或循环执行时间(Profile Function or Loop Execution Time)
- windows 下如何使用 Lua 语言绘制正弦函数图像?代码
- Go语言技巧:使用for range time.Tick()固定间隔时间执行
- C语言技巧--在结构体中使用函数例子(定义一个指向函数的指针)
- web报表工具FineReport经常使用函数的使用方法总结(日期和时间函数)
- freemarker函数功能的使用之时间处理
- Mysql 时间处理函数使用
- Linux时间函数之gettimeofday()函数之使用方法
- symbian 时间使用和统计(计算)函数(类)运行时间