1. 使用 clock() 测试运行时间
#include <time.h>
int main(int argc, char *argv[])
{
clock_t start = clock();
/* your code here... */
clock_t end = clock();
double timeuse = (double)(end - start) / CLOCKS_PER_SEC;
return 0;
}
此方案代码编写较容易,清晰明了,缺点:精度较差
2. 使用 gettimeofday() 测试运行时间
#include <stdlib.h>
#include <sys/time.h>
int main(int argc, char *argv[])
{
struct timeval start;
struct timeval end;
double elapsed = 0;
gettimeofday(&start, NULL);
/* your code here... */
gettimeofday(&end, NULL);
elapsed = (end.tv_sec - start.tv_sec) * 1000000
+ (end.tv_usec - start.tv_usec);
elapsed /= 1000000;
return 0;
}
使用<sys/time.h>
里面的 gettimeofday 函数计算,精度达到微秒级,比 clock()
要精确得多。
struct timeval 定义于 <bits/time.h>
头文件:
struct timeval
{
__time_t tv_sec; /* Seconds. */
__suseconds_t tv_usec; /* Microseconds. */
};