加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

计时器的time_t和clock_t 的两种实现方法(推荐)

发布时间:2020-12-16 05:16:54 所属栏目:百科 来源:网络整理
导读:想给自己初步完成的相空间搜索算法计算一下运行时间,于是尝试了如下使用 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; tim

想给自己初步完成的相空间搜索算法计算一下运行时间,于是尝试了如下使用 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 的两种实现方法(推荐)全部内容了,希望大家多多支持编程小技巧~

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读