一般有两个函数的时间分辨率较好:
1.int gettimeofday(struct timeval *restrict tp, void *restrict tzp);成功返回0,不成功返回-1和错误码errno。
例:
#include <stdio.h>
#include <sys/time.h>
#define MILLION 1000000L
void function_to_time(void);//要测试的函数
int main(void){
long timedif;
struct timeval tpend; //timeval结构体包含两个成员:time_t tv_sec;从Epoch开始的秒数 time_t tv_usec;从Epoch开始的微秒数
struct timeval tpstart;
if(gettimeofday(&tpstart, NULL)){
printf(stderr, "Failed to get start time\n");
return 1;
}
function_to_time();
if(gettimeofday(&tpend, NULL)){
printf(stderr, "Failed to get end time\n");
return 1;
}
timedif = MILLION*(tpend.tv_sec - tpstart.tv_sec) + tpend.tv_usec - tpstart.tv_usec;
printf("The function_to_time took %ld microseconds\n", timedif);
return 0;
}