【转载】boost中的timer们
来源:互联网 发布:澳洲阳光海岸大学 知乎 编辑:程序博客网 时间:2024/06/07 01:06
当需要测试语句执行时间时,用惯了c中的clock_t结构体和clock()函数后,感受一下C++的纯正吧。
/*
编译使用g++ timer.cpp -o timer
*/
#include <boost/timer.hpp>
#include <iostream>
using namespace std;
using namespace boost;
int main()
{
long k;
timer t;//此时开始计时
for (long i = 0; i<100000000 ;i++)
{
k += i;
}
cout << t.elapsed() << "\n";//截止到此使用的时间
cout << "最大时间: " << t.elapsed_max() << "\n";
cout << "最小时间: " << t.elapsed_min() << "\n";
}
其实boost库中的这个timer类只是对那些结构体和函数的一层包装,头文件如下(只列实现部分):
class timer
{
private:
std::clock_t _start_time;//这个熟悉吧^-^
public:
timer() // 初始化_start_time
{ _start_time = std::clock(); }
void restart() //重新开始计时
{ _start_time = std::clock(); }
double elapsed() const //返回经过的时间,单位“秒”
{ return double(std::clock() - _start_time) / CLOCKS_PER_SEC; }
double elapsed_max() const //返回经历时间的最大值,这个值在一些系统上可能很大!!
{
return (double((std::numeric_limits<std::clock_t>::max)())
- double(_start_time)) / double(CLOCKS_PER_SEC);
}
double elapsed_min() const //返回经历时间的最小值
{ return double(1)/double(CLOCKS_PER_SEC); }
};
另外提供一个类progress_timer,它在离开定义自己的作用范围之后就会自动销毁, 并且显示经过的时间。
/*
*/
#include <boost/progress.hpp>
#include <iostream>
int main()
{
long k;
boost::progress_timer pt;
for (long i = 0; i<10000000 ;++i)
{
k += i;
}
return 0;
}
此外还有一个比较有意思的类progress_display,它显示一个进度条:-^。
#include <boost/progress.hpp>
#include <iostream>
int main()
{
long k;
boost::progress_display pd(100);
for (int i = 0; i<100 ; ++i)
{
for(long l = 0, k = 0;
l<10000000;
++l)
{
k += l;
}
++pd;
}
return 0;
}
后两个源码实现都不是太复杂,不再列出。
C++给人以简明快捷的代码,令人耳目一新。
/*
编译使用g++ timer.cpp -o timer
*/
#include <boost/timer.hpp>
#include <iostream>
using namespace std;
using namespace boost;
int main()
{
long k;
timer t;//此时开始计时
for (long i = 0; i<100000000 ;i++)
{
k += i;
}
cout << t.elapsed() << "\n";//截止到此使用的时间
cout << "最大时间: " << t.elapsed_max() << "\n";
cout << "最小时间: " << t.elapsed_min() << "\n";
}
其实boost库中的这个timer类只是对那些结构体和函数的一层包装,头文件如下(只列实现部分):
class timer
{
private:
std::clock_t _start_time;//这个熟悉吧^-^
public:
timer() // 初始化_start_time
{ _start_time = std::clock(); }
void restart() //重新开始计时
{ _start_time = std::clock(); }
double elapsed() const //返回经过的时间,单位“秒”
{ return double(std::clock() - _start_time) / CLOCKS_PER_SEC; }
double elapsed_max() const //返回经历时间的最大值,这个值在一些系统上可能很大!!
{
return (double((std::numeric_limits<std::clock_t>::max)())
- double(_start_time)) / double(CLOCKS_PER_SEC);
}
double elapsed_min() const //返回经历时间的最小值
{ return double(1)/double(CLOCKS_PER_SEC); }
};
另外提供一个类progress_timer,它在离开定义自己的作用范围之后就会自动销毁, 并且显示经过的时间。
/*
*/
#include <boost/progress.hpp>
#include <iostream>
int main()
{
long k;
boost::progress_timer pt;
for (long i = 0; i<10000000 ;++i)
{
k += i;
}
return 0;
}
此外还有一个比较有意思的类progress_display,它显示一个进度条:-^。
#include <boost/progress.hpp>
#include <iostream>
int main()
{
long k;
boost::progress_display pd(100);
for (int i = 0; i<100 ; ++i)
{
for(long l = 0, k = 0;
l<10000000;
++l)
{
k += l;
}
++pd;
}
return 0;
}
后两个源码实现都不是太复杂,不再列出。
C++给人以简明快捷的代码,令人耳目一新。
0 0
- 【转载】boost中的timer们
- boost ---- timer
- boost-timer
- boost::timer
- boost.timer
- boost::timer
- boost::timer
- Boost中的Timer的使用——计算时间流逝
- boost timer类介绍
- 浅尝boost之timer
- boost timer类介绍
- boost当中timer类
- boost. timer库
- Boost库学习----timer
- boost-timer库学习
- 浅尝boost之timer
- boost--timer库
- boost库-timer
- Android ActionBar完全解析,使用官方推荐的最佳导航栏(上)
- windows 枚举进程,并结束进程
- 获取系统的各个分区
- C语言文件操作 函数大全
- Swift学习笔记之-Implicitly unwrapped optionals
- 【转载】boost中的timer们
- 【转载】Boost.Regex 使用
- 【转载】[转载]GetCurrentProcessID、OpenProcessToken、LookupPrivilegeValue、AdjustTokenPrivileges
- 关闭进程时的权限问题,一个例子。
- ubuntu mount windos share目录,遇到mount error(12): Cannot allocate memory
- 关于qt.
- 关于qt不得不说的事。 编译你自己的程序
- qt移植
- 互联网人工智能时代的到来