您的位置:首页 > 其它

Boost库学习----timer

2013-09-13 14:55 375 查看
1.timer是一个很实用的小工具,而且十分简单,源码也十分简洁,主要是使用了标准库中的std::clock()实现的

     例子:

      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