在Linux系统中,使用struct timeval
结构体来表示时间间隔。可以使用该结构体来进行时间测量和计时。
下面是一个简单的示例,演示如何使用struct timeval
来测量代码段的执行时间:
#include <stdio.h>
#include <sys/time.h>
int main() {
struct timeval start, end;
long long elapsedTime;
// 获取起始时间
gettimeofday(&start, NULL);
// 在这里执行需要测量时间的代码段
// 例如,这里简单地休眠1秒钟
sleep(1);
// 获取结束时间
gettimeofday(&end, NULL);
// 计算时间间隔
elapsedTime = (end.tv_sec - start.tv_sec) * 1000000LL + (end.tv_usec - start.tv_usec);
printf("Elapsed time: %lld microseconds\n", elapsedTime);
return 0;
}
在这个示例中,首先获取起始时间,然后执行需要测量时间的代码段(这里简单地使用sleep(1)
让程序休眠1秒钟),接着获取结束时间并计算时间间隔,最后打印出经过的时间。
需要注意的是,struct timeval
中的tv_sec
和tv_usec
分别表示秒和微秒。将两者相乘即可得到总的微秒数,从而得到代码段的执行时间。