1. 程式人生 > >【gettimeofday】測試程式執行時間

【gettimeofday】測試程式執行時間

轉自: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; }