在开发过程中有时候需要计算一段代码运行所消耗的时间 ,使用函数gettimeofday就可以实现,并且可以精确到毫秒
gettimeofday函数原型为: int gettimeofday(struct timeval *tv, struct timezone *tz);
需要包含的头文件:#include <sys/time.h>
入参:
1、入参tv : 它是 结构体struct timeval (在<sys/time.h>定义) ,详细结构为
struct timeval {
time_t tv_sec; /* 秒 */
suseconds_t tv_usec; /* 微秒 */
};
结构体定time_t定义在头文件<time.h>中,typedef long time_t; /* 时间值time_t 为长整型的别名*/
结构体suseconds_t 定义是也是: long
2、入参tz:该参数已经废弃 ,填入NULL即可
贴一段代码:
#define SECOND_TO_MRCROSECOND (1000000)
struct timeval tStart,tEnd; //驼峰命令,变量保存程序开始时间,和结束时间
float timeElapse; //变量保存程序耗费时间
gettimeofday(&tStart,NULL); //记录程序开始时间
// 插入需要计算时间的代码
gettimeofday(&tEnd,NULL); // 记录程序结束时间
timeElapse = tEnd.tv_usec-tStart.tv_usec + SECOND_TO_MRCROSECOND*(tEnd.tv_sec-tStart.tv_sec); // 以微秒来计数
printf("Function Elapse Time:%f s\n",timeElapse/ SECOND_TO_MRCROSECOND); //