timer

 

使用方法

 

 

#include <boost/timer.hpp>
#include <iostream>
using namespace std;
using namespace boost; int main()
{
timer t;//声明一个计时器对象,開始计时
cout<<"max:"<<t.elapsed_max()/3600<<"h"<<endl; //可度量的最大时间,以小时为单位
cout<<"min:"<<t.elapsed_min()<<"s"<<endl; //可度量的最小时间(精度),以秒为单位
cout<<"now:"<<t.elapsed()<<"s"<<endl; //输出已流逝的时间 (从声明对象開始)
return 0; }

 

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2FuZ3hpYW9idXB0/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" />

 

 

使用建议

 

适用于大部分要求不高的程序计时任务。

timer不适合高精度的时间測量任务,它的精度依赖于操作系统或编译器,难以跨平台。也不适合大跨度的时间段的

測量。另外它已经被声明为废弃,或许会在将来某个时候移出Boost程序库。

仅仅能供程序猿手工控制使用,就像是个

方便的秒表。

 

 

progress_timer

 

使用方法

 

#include <boost/progress.hpp>
#include <iostream>
using namespace std;
using namespace boost; int main()
{
progress_timer t;//声明一个计时器对象。開始计时
cout<<"now:"<<t.elapsed()<<"s"<<endl; //输出已流逝的时间 int i = 60000;
while(i--)
{
int j = 6000;
while(j--);
} //延时而已 return 0; }

 

 

 

使用建议:

 

progress_timer继承自timer。会在析构函数时,自己主动输出时间。

因此上述结果会有两个时间,一个是手动调用。一

个是析构时自己主动输出。

 

假设要在一个程序中多次測量,能够用花括号{ } 限定progress_timer的生命期:

{

                 {

                                   boost::progress_timer t1 ;

                                  // doing something 

                 }                                  //析构时会自己主动输出时间

                     {

                                  boost::progress_timer t2 ;

                                  // doing something 

                 }                                   //析构时又会自己主动输出时间

}

注:

progress_timer与timer不同的是,构造函数progress_timer(std::ostream &os) 。它将同意在析构时将时间输入指

定的IO流里,默认是std::out。

 

 

 

 

总结

 

这两个用于计时的小工具。精度不高但够用。

progress_timer能利用析构函数被自己主动调用的特点,自己主动显示时间。

假设须要更高精度的计时,应该使用timer库的还有一个组件:cpu_timer 

 

 

 

 

 

 

初探boost之timer库学习笔记的更多相关文章

  1. 初探boost之smart_ptr库学习笔记

    概述 Boost.smart_ptr库提供了六种智能指针,除了shared_ptr 和 weak_ptr 以外还包含 scoped_ptr .scoped_array . shared_array . ...

  2. 初探boost之progress_display库学习笔记

    progress_display 用途 progress_display能够在控制台上显示程序的运行进度,假设程序运行非常耗费时间,那么它能提供一个友好的用户界 面,不至于让用户在等待中失去耐心,甚至 ...

  3. muduo网络库学习笔记(三)TimerQueue定时器队列

    目录 muduo网络库学习笔记(三)TimerQueue定时器队列 Linux中的时间函数 timerfd简单使用介绍 timerfd示例 muduo中对timerfd的封装 TimerQueue的结 ...

  4. numpy, matplotlib库学习笔记

    Numpy库学习笔记: 1.array()   创建数组或者转化数组 例如,把列表转化为数组 >>>Np.array([1,2,3,4,5]) Array([1,2,3,4,5]) ...

  5. muduo网络库学习笔记(五) 链接器Connector与监听器Acceptor

    目录 muduo网络库学习笔记(五) 链接器Connector与监听器Acceptor Connector 系统函数connect 处理非阻塞connect的步骤: Connetor时序图 Accep ...

  6. muduo网络库学习笔记(四) 通过eventfd实现的事件通知机制

    目录 muduo网络库学习笔记(四) 通过eventfd实现的事件通知机制 eventfd的使用 eventfd系统函数 使用示例 EventLoop对eventfd的封装 工作时序 runInLoo ...

  7. C++STL标准库学习笔记(三)multiset

    C++STL标准库学习笔记(三)multiset STL中的平衡二叉树数据结构 前言: 在这个笔记中,我把大多数代码都加了注释,我的一些想法和注解用蓝色字体标记了出来,重点和需要关注的地方用红色字体标 ...

  8. 【python】numpy库和matplotlib库学习笔记

    Numpy库 numpy:科学计算包,支持N维数组运算.处理大型矩阵.成熟的广播函数库.矢量运算.线性代数.傅里叶变换.随机数生成,并可与C++/Fortran语言无缝结合.树莓派Python v3默 ...

  9. C++STL标准库学习笔记(一)sort

    前言: 近来在学习STL标准库,做一份笔记并整理好,方便自己梳理知识.以后查找,也方便他人学习,两全其美,快哉快哉! 这里我会以中国大学慕课上北京大学郭炜老师的<程序设计与算法(一)C语言程序设 ...

随机推荐

  1. spring-boot-2.0.3启动源码篇五 - run方法(四)之prepareContext

    前言 此系列是针对springboot的启动,旨在于和大家一起来看看springboot启动的过程中到底做了一些什么事.如果大家对springboot的源码有所研究,可以挑些自己感兴趣或者对自己有帮助 ...

  2. [NOI 2017]蚯蚓排队

    Description 题库链接 蚯蚓幼儿园有 \(n\) 只蚯蚓.幼儿园园长神刀手为了管理方便,时常让这些蚯蚓们列队表演. 所有蚯蚓用从 \(1\) 到 \(n\) 的连续正整数编号.每只蚯蚓的长度 ...

  3. Django之FBV与CBV

    一.FBV与CBV FBV(function based views),即基于函数的视图:CBV(class based views),即基于类的视图,也是基于对象的视图.当看到这个解释时,我是很萌的 ...

  4. 如何使tinymce编辑器的高度随内容自变化(转载)

    如何使tinymce编辑器的高度随内容自变化 最简单的方法就是在配置时添加Autoresize插件: tinymce.init({ selector: "textarea", // ...

  5. Perl爬虫的简单实现

    由于工作中有个项目需要爬取第三方网站的内容,所以在Linux下使用Perl写了个简单的爬虫. 相关工具 1. HttpWatch/浏览器开发人员工具 一般情况下这个工具是用不到的,但是如果你发现要爬取 ...

  6. canvas-2drawRectFun.html

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. 【读书笔记】iOS-OCUnit-单元测试

    一,新建立一个hello工程--->在左侧会看到helloTests---->helloTests.m.如下图所示. 二,打开查看会看到如下代码. #import <UIKit/UI ...

  8. (后端)Java中关于金额大小写的工具类

    /** * 金额小数转换成中文大写金额 * * @author Neil Han * */ private static final String UNIT[] = { "万", ...

  9. Java:【面向对象:类的定义,静态变量,成员变量,构造函数,封装与私有,this】

    本文内容: 什么是面对对象 类的定义与对象实例化 成员变量 成员变量的有效范围 成员变量的赋值 静态变量.方法与实例变量.方法 构造函数 封装与私有 this关键字 注:函数和方法是一样东西.[由于我 ...

  10. ubuntu18.04突然无法上网解决方法

    sudo service network-manager stop sudo rm /var/lib/NetworkManager/NetworkManager.state sudo service ...