c c 計算程式執行時間

2021-08-20 09:22:41 字數 1052 閱讀 3532

在c/c++中經常需要獲取某段程式的執行時間,那麼如何來實現呢?

使用time函式計算某段程式執行時間的**如下:

time_t start_time;

time(&start_time);

...time-consuming code

...time_t end_time;

time(&end_time);

time_t duration = end_time - start_time;

但該方式只能獲取以秒為單位的時間,如果想要獲取更細粒度的時間,則需要使用其它的方法。

clock函式返回程式執行的cpu時鐘數,使用clock函式統計程式段執行的時鐘數,再用執行的時鐘數除cpu每秒執行的時鐘數,即可得到執行的時間。**如下:

clock_t start_time = clock();

...time_consuming code

...clock_t end_time = clock();

double duration = double(end_time - start_time)/clocks_per_sec;

其中,clocks_per_sec表示cpu一秒鐘的執行時鐘數。該方式也有一定的限制條件,即若程式使用多核平行計算,則得出的時間不準確,統計的執行時鐘數是所有核的總時鐘數。

struct timeval tv;

gettimeofday(&tv,null);

long int start_time = tv.tv_sec * 1000 + tv.tv_usec/1000;

...time consuming code

...gettimeofday(&tv,null);

long int end_time = tv.tv_sec * 1000 + tv.tv_usec/1000;

long int duration = end_time - start_time;

在c++11中可以考慮使用更高階的特性,chrono,這裡就不做過多的介紹了。

C C計算程式執行時間

clock t clock void 簡單而言,就是該程式從啟動到函式呼叫占用cpu的時間。這個函式返回從 開啟這個程式程序 到 程式中呼叫clock 函式 時之間的cpu時鐘計時單元 clock tick 數,在msdn中稱之為掛鐘時間 wal clock 若掛鐘時間不可取,則返回 1。其中clo...

計算程式執行時間

在長時間計算程式執行時間時,可以使用clock函式。clock比較通用,精度並不是特別的高,大約是10ms。但是對於長時間的計算的話,還是可以使用的。以下是一段示例程式,將幫助你理解 include stdio.h include memory.h include time.h define siz...

程式執行時間計算

int sum int n 分析 宣告不計時間,第一句,第四句各占用乙個時間單位。第三句每執行一次占用四個時間單位,兩次乘法,一次加法,一次賦值。而執行n次共占用4n個時間單位。第二行初始化i,乙個時間單位 測試i n,n 1個時間單位 i n個時間單位 總共2n 2。忽略呼叫,返回值的開銷,以上總...