歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Linux下C++多線程下統計程序運行時間(非常注意)

一般在C++程序中我們會使用clock()函數來統計程序的運行時間,格式如下:

clock_t begin , end;

begin = clock();

//這裡是要統計時間的代碼

end = clock();

unsigned uRunTime = (end - begin) * 1.0 / CLOCKS_PER_SEC * 1000;

這樣就得出程序運行的毫秒數。

查看一下clock()函數的功能: 這個函數返回從“開啟這個程序進程”到“程序中調用C++ clock()函數”時之間的CPU時鐘計時單元(clock tick)數

當程序單線程或者單核心機器運行時,這種時間的統計方法是正確的。

但是如果要執行的代碼多個線程並發執行時就會出問題,因為最終end-begin將會是多個核心總共執行的時鐘嘀嗒數,因此造成時間偏大。

如果對可以將執行程序的執行時間精確到秒,建議使用time_t beg = time(0)來進行統計,

Copyright © Linux教程網 All Rights Reserved