計時器的time_t和clock_t 的兩種實現(xiàn)方法(推薦)
更新時間:2016年10月31日 14:02:59 投稿:jingxian
下面小編就為大家?guī)硪黄嫊r器的time_t和clock_t 的兩種實現(xiàn)方法(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
想給自己初步完成的相空間搜索算法計算一下運行時間,于是嘗試了如下使用 time_t 類型的方式
#include <stdlib.h> #include <iostream> #include <time.h> #include "StateFunctions.h" using namespace std; int main(int argc, char** argv) { time_t start, finish; time(&start); StateFunctions testobj(22, 22); testobj.TEST(); testobj.TEST(); testobj.FillRandomDets(200); testobj.evolute(1000, 0.9); cout << "--------------------------------------------" << endl; time(&finish); double duration = difftime(finish, start); cout << "--> time: " << duration << " s" << endl; cout << "--------------------------------------------" << endl; return 0; }
這種實現(xiàn)方式可以正確計算出算法的核心部分耗費了234秒的 walltime。在此之前嘗試的使用 clock_t 類型的實現(xiàn)方式是
#include <iostream> #include <time.h> #include "StateFunctions.h" using namespace std; int main(int argc, char** argv) { clock_t start, finish; start = clock(); StateFunctions testobj(22, 22); testobj.TEST(); testobj.TEST(); testobj.FillRandomDets(200); testobj.evolute(1000, 0.9); cout << "--------------------------------------------" << endl; finish = clock(); double duration = (double)(finish - start) / CLOCKS_PER_SEC; cout << "--> time: " << duration << " s" << endl; cout << "--------------------------------------------" << endl; return 0; }
這段代碼得到的運行時間只有11秒,明顯不對。造成這種結果的原因暫時還不清楚,或許是因為算法執(zhí)行過程中在頻繁調用其他外部程序來獲得一些計算結果。
以上就是小編為大家?guī)淼挠嫊r器的time_t和clock_t 的兩種實現(xiàn)方法(推薦)全部內容了,希望大家多多支持腳本之家~