boost当中timer类

来源:互联网 发布:葫芦娃软件下载 编辑:程序博客网 时间:2024/06/01 09:03

 

elapsed() 函数简单地测量自对象创建后所流逝的时间。

elapsed_min() 返回timer测量时间的最小精度。          // 单位是秒

elapsed_max() 返回timer能够测量的最大时间范围, //单位是秒。

timer 不适合高精度的时间测量任务。它的精度依赖于操作系统或编译器, 难以做到跨平台。 timer也不适合大跨度时间段的测量, 可提供的最大跨度只有几百个小时,如果需要以天、月甚至年作为时间的单位则不能使用timer。 应该使用 date_time库。

 

 

namespace boost {

class timer
{
 public:
         timer() { _start_time = std::clock(); } // postcondition: elapsed()==0
//         timer( const timer& src );      // post: elapsed()==src.elapsed()
//        ~timer(){}
//  timer& operator=( const timer& src );  // post: elapsed()==src.elapsed()
  void   restart() { _start_time = std::clock(); } // post: elapsed()==0
  double elapsed() const                  // return elapsed time in seconds
    { return  double(std::clock() - _start_time) / CLOCKS_PER_SEC; }

  double elapsed_max() const   // return estimated maximum value for elapsed()
  // Portability warning: elapsed_max() may return too high a value on systems
  // where std::clock_t overflows or resets at surprising values.
  {
    return (double((std::numeric_limits<std::clock_t>::max)())
       - double(_start_time)) / double(CLOCKS_PER_SEC);
  }

  double elapsed_min() const            // return minimum value for elapsed()
   { return double(1)/double(CLOCKS_PER_SEC); }

 private:
  std::clock_t _start_time;
}; // timer

} // namespace boost

原创粉丝点击