2018年3月17日 星期六

C++ 計時器,計時函式跑的時間

C++ 計時器,計時函式跑的時間

簡單寫了一個比較易用的函式
/*****************************************************************
Name : Timer.hpp
Date : 2017/12/19
By   : CharlotteHonG
Final: 2017/12/19
*****************************************************************/
#pragma once
#include <string>
#include <ctime>

class Timer {
public:
    Timer(std::string name=""): name(name){
        startTime = clock();
    }
    operator double() {
        return time;
    }
public:
    void start() {
        startTime = clock();
        flag=0;
    }
    void end() {
        finalTime = clock();
        time = (double)(finalTime - startTime)/CLOCKS_PER_SEC;
    }
    void print(std::string name="") {
        if (flag==0) {
            flag = 1;
            end();
        }
        if(name=="") {
            name=this->name;
        }
        if(priSta) {
            std::cout << "#" << name << ", " << " time = " << time << "s" << std::endl;
        }
    }
private:
    std::string name;
    clock_t startTime;
    clock_t finalTime;
    double time;
    bool flag = 0;
public:
    bool priSta = 1;
};
直接引用即可,使用方法大致如下
Timer t;
t.start();
YourFun();
t.print("YourFun");
如果有一整頁的計時器一個一個刪除很麻煩可以使用
t.priSta=0;
可以關閉計時,就不用砍掉全部了

沒有留言:

張貼留言