在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
分別表示秒和微秒。將兩者相乘即可得到總的微秒數,從而得到代碼段的執行時間。