Boost库学习----timer
2013-09-13 14:55
375 查看
1.timer是一个很实用的小工具,而且十分简单,源码也十分简洁,主要是使用了标准库中的std::clock()实现的
例子:
timer t;
.........
..........
cout<<"time elapsed"<<t.elapsed()<<"s"<<endl;
打印出从开始到结束的时间间隔,以秒为单位
timer源码十分简洁
可以看到类中有个成员变量_start_time ,每次初始化一个该类对象时就把当前时钟的值赋给它以记录开始时间,想计算一段时间后时钟的间隔,只需调用elapsed(), elapsed()函数计算此刻时钟的值与_start_time差并除以CLOCKS_PER_SEC。
其中CLOCKS_PER_SEC是ctime中定义的宏,表示一秒钟内时钟的滴答次数,为1000,也就是一秒钟时钟滴答计数为1000。
elapsed_min()函数返回能记录的最小时间间隔,也就是1毫秒。elapsed_max()返回能记录的最大时间间隔。
例子:
timer t;
.........
..........
cout<<"time elapsed"<<t.elapsed()<<"s"<<endl;
打印出从开始到结束的时间间隔,以秒为单位
timer源码十分简洁
class timer { public: timer() { _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); } private: std::clock_t _start_time; };
可以看到类中有个成员变量_start_time ,每次初始化一个该类对象时就把当前时钟的值赋给它以记录开始时间,想计算一段时间后时钟的间隔,只需调用elapsed(), elapsed()函数计算此刻时钟的值与_start_time差并除以CLOCKS_PER_SEC。
其中CLOCKS_PER_SEC是ctime中定义的宏,表示一秒钟内时钟的滴答次数,为1000,也就是一秒钟时钟滴答计数为1000。
elapsed_min()函数返回能记录的最小时间间隔,也就是1毫秒。elapsed_max()返回能记录的最大时间间隔。
相关文章推荐
- Boost库学习随记一 timer库示例:
- Boost库学习------progress_timer
- Boost库学习随记二 date_time、time_duration、date_facet、time_facet、timer库示例等:
- 【08】 Boost库学习笔记之定时器(Timer)
- Linux struct itimerval学习
- c++的boost库学习笔记
- Boost库智能指针学习
- java Timer 学习
- 1- 开始学习 context-M3 LM3S1138 上传timer 的学习资料
- boost库学习之 shared_ptr
- c++ Boost库之boost::bind学习
- boost库学习随记五 Boost.Locale 之字符转换 gbk utf8 big5 string wstring等
- Struts2源码阅读之UtilTimerStatck和ProfilingTimerBean类学习
- Timer/TimerTask 学习
- CCProgressTimer学习
- boost库学习笔记
- QT学习之Timer的用法
- 【初学】UI控件学习笔记-UILable制作打字机特效(lable+array+timer+动态string)
- 系统学习asp.net Ajax中GridView、UpdatePanel、UpdateProgress、Timer使用
- 【VS2010学习笔记】【函数学习】一(MFC+OpenCV2.4.7读取摄像头之WM_TIMER消息处理函数的添加问题)