一般在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)來進行統計,