目录
1.clock()
是C标准库<time.h>中的函数
声明为:clock_t clock(void)
功能:创建程序进程到clock()函数被调用之间的cpu时钟计时单位数,即硬件滴答数。可通过下面的CLOCKS_PER_SEC换算成秒。
返回值类型为clock_t,clock_t是用来保存时间的数据类型,typedef long clock_t,其实就是一个长整型。
常量CLOCKS_PER_SEC,他表示一秒钟有多少个时钟计时单位,定义为:#define CLOCK_PER_SEC ((clock_t)1000)。
clock()函数的返回值除以CLOCKS_PER_SEC,即可得到创建程序进程到clock()函数被调用用了多少秒。
clock()函数的精度是ms(毫秒)。
用法:
clock_t start,end;
start = clock();
//…executing…
end = clock();
printf("Used time=%f\n",(double)(end-start)/CLOCKS_PER_SEC);
2.gettimeofday()----linux C函数
头文件:sys/time.h
函数原型:int gettimeofday(struct timeval *tv,struct timezone *tz);
说明:其参数tv是保存获取时间结果的结构体,参数tz用于保存时区结果(若不使用则传入NULL即可)。
timeval的定义为:
struct timeval {
long tv_sec; // 秒数
long tv_usec; //微秒数
}
可见该函数可用于在linux中获得微秒精度的时间。
用法:
struct timeval start,end;
gettimeofday(&start, NULL );
//…executing…
gettimeofday(&end, NULL );
double timeuse = ( end.tv_sec - start.tv_sec ) + (end.tv_usec - start.tv_usec)/1000000.0;
printf("time=%f\n",timeuse);