没有提供优于1秒时间分辨率的ANSI C功能,但是POSIX功能gettimeofday
提供微秒分辨率.时钟函数仅测量进程已执行的时间量,在许多系统上并不准确.
您可以按如下方式使用此函数:
struct timeval tval_before, tval_after, tval_result;
gettimeofday(&tval_before, NULL);
// Some code you want to time, for example:
sleep(1);
gettimeofday(&tval_after, NULL);
timersub(&tval_after, &tval_before, &tval_result);
printf("Time elapsed: %ld.%06ld\n", (long int)tval_result.tv_sec, (long int)tval_result.tv_usec);
这在我的机器上返回Time elapsed: 1.000870
.