【gettimeofday】測試程式執行時間
阿新 • • 發佈:2019-01-28
轉自:https://blog.csdn.net/u013806583/article/details/58127067
普通的C程式已經驗證,核心模組的暫時還沒有驗證
在測試程式時,往往需要了解程式執行所需的時間,在C語言中可以使用函式gettimeofday來得到時間。
來不及解釋了,直接上例子。
對於普通的C程式:
使用 gettimeofday() 函式
#include<stdio.h>
#include<sys/time.h> //注意引用這個標頭檔案
#include<unistd.h>
int delay(int time)
{
//這裡用來表示你自己要執行的程式
}
int main()
{
//定義兩個結構體,來記錄開始和結束時間
struct timeval start;
struct timeval end;
//記錄兩個時間差
unsigned long diff;
//第一次獲取時間,即表示開始記時
gettimeofday(&start,NULL);
//執行自己的程式
delay(10);
//第二次獲取時間,即表示結束記時
gettimeofday(&end,NULL);
//計算時間差,並列印
diff = 1000000 * (end.tv_sec-start.tv_sec)+ end.tv_usec-start.tv_usec;
printf(“thedifference is %ld\n”,diff);
return 0;
}
哈哈,例子結束,是不是很簡單。當然這是抄的。。。。。。。
對於核心模組的C程式
雖然同是C程式,但是寫核心模組就有很大的不同哦。
使用 do_gettimeofday() 函式,同時,標頭檔案也變了哦
同樣的,直接上例子。
#include<stdio.h>
//注意引用這個標頭檔案
#include<linux/time.h>
#include<unistd.h>
int delay(int time)
{
//這裡用來表示你自己要執行的程式
}
int main()
{
//定義兩個結構體,來記錄開始和結束時間
struct timeval start;
struct timeval end;
//記錄兩個時間差
unsigned long diff;
//第一次獲取時間,即表示開始記時
do_gettimeofday(&start,NULL);
//執行自己的程式
delay(10);
//第二次獲取時間,即表示結束記時
do_gettimeofday(&end,NULL);
//計算時間差,並列印
diff = 1000000 * (end.tv_sec-start.tv_sec)+ end.tv_usec-start.tv_usec;
printf(“thedifference is %ld\n”,diff);
return 0;
}