計時器的time_t和clock_t 的兩種完成辦法(引薦)。本站提示廣大學習愛好者:(計時器的time_t和clock_t 的兩種完成辦法(引薦))文章只能為提供參考,不一定能成為您想要的結果。以下是計時器的time_t和clock_t 的兩種完成辦法(引薦)正文
想給自己初步完成的相空間搜索算法計算一下運轉時間,於是嘗試了如下運用 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; }
這種完成方式可以正確計算出算法的中心局部消耗了234秒的 walltime。在此之前嘗試的運用 clock_t 類型的完成方式是
#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秒,分明不對。形成這種後果的緣由暫時還不清楚,或許是由於算法執行進程中在頻繁調用其他內部順序來取得一些計算後果。
以上就是為大家帶來的計時器的time_t和clock_t 的兩種完成辦法(引薦)全部內容了,希望大家多多支持~