1 clock(),需要包含头文件,ctime/time.h ,(这种方法主要是和CPU时钟计时单元有关,并不是特别精确) ,以下为试用示例:
#include <ctime>
int main(int arav,char** argc){
clock_t start,end;
start = clock();
func();
end = clock();
double usetime_ms = (double)(end - start);
//系统提供了CLOSKS_PER_SEC常量可直接使用,表示每一秒有多少个时钟计时单元
double usetime_s = (double)(end - start) / CLOSKS_PER_SEC;
return 0;
}
2 gettimeofday(),linux环境下的计时函数,需要包含头文件<sys/time.h>
其定义如下:
int gettimeofday (struct timeval *__restrict __tv,
void *__restrict __tz)
其中timeval结构体的定义如下:
struct timeval
{
#ifdef __USE_TIME_BITS64
__time64_t tv_sec; /* Seconds. */
__suseconds64_t tv_usec; /* Microseconds. */
#else
__time_t tv_sec; /* Seconds. */
__suseconds_t tv_usec; /* Microseconds. */
#endif
};
#endif
试用示例:
#include <sys/time.h>
int main(int argc,char** argv){
struct timeval t1,t2;
gettimeofday(&t1, nullptr);
func();
gettimeofday(&t2, nullptr);
double usetime_s = (t2.tv_sec - t1.tv_sec) + (double)(t2.tv_usec - t1.tv_usec) / 1000000.0;
double usetime_ms = (t2.tv_sec - t1.tv_sec) * 1000 + (double)(t2.tv_usec - t1.tv_usec) / 1000;
return 0;
}