2009年11月29日 星期日

[C語言] 如何計算某一段程式碼執行時間

在Unix-like中,我們可以用 time [option] command 這種方法來計算出command執行所花費的時間,不過若是該command是一個daemon process, 我們一般來說 都只會監看log,此時若要知道某一段程式碼執行花費了多少時間, 當然我們可以用gettimeofday以及localtime_r來取得詳細的日期與時間來進行相減的動作, 不過若是單純只想計算時間,這邊提供clock function來做更加的方便, 下方是使用的Sample Code

#include <stdio.h>
#include <time.h>


/* This sample will display how to calculate the program execution time */

int plus(int iEnd)
{
int i = 0;
while(i < iEnd)
i++;

return i;
}

int main(int argc, char *argv[])
{
clock_t start_time, end_time;
float total_time = 0;
int iNum = 0;
if (argc < 2)
{
printf("Usage : %s Num\n", argv[0]);
return -1;
}

start_time = clock(); /* mircosecond */
iNum = plus(atoi(argv[1]));
end_time = clock();

/* CLOCKS_PER_SEC is defined at time.h */
total_time = (float)(end_time - start_time)/CLOCKS_PER_SEC;

printf("Time : %f sec \n", total_time);

return 0;
}



沒有留言: