LinuxでC/C++プログラムの実行時間を印刷する
getTickCount
の使用ヘッダファイル
#include
C++プログラム:double t = (double)getTickCount();
// do something ...
t = ((double)getTickCount() - t)/getTickFrequency();
cout << "Times passed in seconds: " << t << endl;
Cプログラム:
clock_t start, finish;
double totaltime;
start = clock();
//do something ...
finish = clock();
totaltime = (double)(finish - start) / CLOCKS_PER_SEC;
printf("Time passed in seconds: %f
", totaltime);
time
コマンドの使用例:
/nfsroot/opencv_test # time ./time
Times passed in seconds: 4.55756
real 0m 4.61s
user 0m 4.27s
sys 0m 0.02s
プログラムの実行時間はuserにsysを加えたものと大まかに考えることができ、real時間が私たちが印刷したプログラムの実行時間より大きいのは、プログラムが実行時にシステムがブロックされているため、システムが一時的に他のタスクを実行したからである.