boost::timer 的替代方案

 在浅尝boost之timer的post里,我提到boost::timer在linux和windows下的不同表现,并用ACE_OS::gettimeofday做了一个替代方案。不过,为了这个功能把ACE的DLL绑到一起,感觉不是那么愉快。

    下面是另一个方案,利用boost::date_time库来解决    

#include  < boost / date_time / posix_time / posix_time.hpp >
class  ElapsedTime
{
public :
    ElapsedTime(): start_time_(boost::posix_time::microsec_clock::local_time())
    {
    }

    
~ ElapsedTime()
    {
    }
    
     
void  restart() 
     {
          start_time_ 
=  boost::posix_time::microsec_clock::local_time();
     }
    
    
double  Elapsed()
    {
        boost::posix_time::time_duration d 
=  boost::posix_time::microsec_clock::local_time()  -  start_time_;
        
double  result  =  d.ticks();
        
return  result  /=  d.ticks_per_second();
    }

private :
    boost::posix_time::ptime start_time_;
};

    由于boost的date_time提供了静态库,不用再扯上一个DLL,让人的感觉会好一些;而且boost也更适用于这个层面的代码,ACE毕竟是框架级别的库。

转载于:https://www.cnblogs.com/lzjsky/archive/2011/01/13/1934809.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值