程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> 計時器的time_t和clock_t 的兩種完成辦法(引薦)

計時器的time_t和clock_t 的兩種完成辦法(引薦)

編輯:關於C++

計時器的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 的兩種完成辦法(引薦)全部內容了,希望大家多多支持~

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved