C++简单计时器

本文介绍了一个C++编写的计时器类,包括Timer类和TimerFactory类。Timer类提供Start()、Stop()和Elapse()方法,用于开始计时、结束计时以及获取代码段执行时间。TimerFactory类则方便管理多个计时器,通过GetTimer()方法按名称获取计时器实例。
摘要由CSDN通过智能技术生成

  因为经常需要对代码段计时,如下是一个抽象的计时器类,包含两个类一个是Timer类,用于计时操作,在需要计时的代码段开始处调用Start()开始计时,在代码段结尾处调用Stop()停止计时,Elapse()可以获取代码段的耗时。另一个是TimerFactory类用于Timer的管理调用GetTimer()即可获取一个计时器,GetTimer()参数为计时器的名字。

#include <iostream>
#include <chrono>
#include <map>
#include <unistd.h>

enum TimeUnit{
    SS = 0, //秒
    MS,     //毫秒
    US,     //微秒
    NS      //纳秒
};

class Timer{
    typedef std::chrono::high_resolution_clock hrc;
    typedef std::chrono::time_point<std::chrono::high_resolution_clock>  tp_hrc;
public:
    Timer():start_(hrc::now()),end_(hrc::now()){}
    virtual ~Timer(){}

    void Start(){
        start_ = hrc::now();
    }
    void Stop(){
        end_ = hrc::now();
    }
    void Reset(){
        start_ = hrc::now();
        end_ = hrc::now();
    }
    double Elapsed(TimeUnit type = MS){
        if(type == TimeUnit::SS){
     
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值