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

 更新时间:2016年10月31日 14:02:59   投稿:jingxian  
下面小编就为大家带来一篇计时器的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 的两种实现方法(推荐)全部内容了,希望大家多多支持脚本之家~

相关文章

  • C语言中计算正弦的相关函数总结

    C语言中计算正弦的相关函数总结

    这篇文章主要介绍了C语言中计算正弦的相关函数总结,包括正弦和双曲线正弦以及反正弦的函数,需要的朋友可以参考下
    2015-08-08
  • C语言常用标准头文件使用实例

    C语言常用标准头文件使用实例

    在C的系列语言程序中,头文件(通常扩展名为.h)被大量使用,它通常包含函数、变量、结构体等的声明和定义,以及一些宏定义和类型定义,这篇文章主要给大家介绍了关于C语言常用标准头文件使用的相关资料,需要的朋友可以参考下
    2024-08-08
  • 关于函数调用方式__stdcall和__cdecl详解

    关于函数调用方式__stdcall和__cdecl详解

    下面小编就为大家带来一篇关于函数调用方式__stdcall和__cdecl详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-09-09
  • 详解C++右值引用

    详解C++右值引用

    很多初学者都感觉右值引用晦涩难懂,其实不然。右值引用只不过是一种新的 C++ 语法,真正理解起来有难度的是基于右值引用引申出的2种 C++ 编程技巧,分别为移动语义和完美转发。本节给读者讲解什么是右值引用以及它的基本用法。
    2021-06-06
  • C++构造函数深度学习

    C++构造函数深度学习

    这篇文章主要为大家详细介绍了C++构造函数,深度学习C++构造函数,感兴趣的小伙伴们可以参考一下
    2016-08-08
  • C语言数组与地址、数组名到底是什么详解

    C语言数组与地址、数组名到底是什么详解

    在写代码的时候,我们经常用到数组,那么有没有想过数组名是什么呢?这篇文章主要给大家介绍了关于C语言数组与地址、数组名到底是什么的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-06-06
  • C++与QML交互的项目实践

    C++与QML交互的项目实践

    本文主要介绍了C++与QML交互的项目实践,将详细介绍C++与QML的交互方式,包括在QML中调用C++函数和在C++中访问QML元素,具有一定的参考价值,感兴趣的可以了解一下
    2023-09-09
  • C语言实现食堂就餐管理系统(带链表)

    C语言实现食堂就餐管理系统(带链表)

    这篇文章主要为大家详细介绍了C语言实现食堂就餐管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-11-11
  • C++创建窗口程序的实现示例

    C++创建窗口程序的实现示例

    Windows窗体应用程序是C#语言中的一个重要应用,本文主要介绍了C++创建窗口程序的实现示例,具有一定的参考价值,感兴趣的可以了解一下
    2024-01-01
  • 详解C语言中return与exit的区别

    详解C语言中return与exit的区别

    这篇文章主要介绍了详解C语言中return与exit的区别的相关资料,希望通过本文能帮助到大家,让大家理解这部分内容,需要的朋友可以参考下
    2017-10-10

最新评论