计时函数类的使用

简介

计时函数类的使用,觉得某个代码写的特别好特此注释

参考链接

https://github.com/gaoxifeng/Feature-Preserving-Octree-Hex-Meshing

code

#pragma once
#include <chrono>

template <typename TimeT = std::chrono::milliseconds>
class Timer{
public:
    Timer() {
        start = std::chrono::system_clock::now();
    }

    size_t value() const {
        auto now = std::chrono::system_clock::now();
        auto duration = std::chrono::duration_cast<TimeT>(now - start);
        return (size_t) duration.count();
    }

    size_t reset() {
        auto now = std::chrono::system_clock::now();
        auto duration = std::chrono::duration_cast<TimeT>(now - start);
        start = now;
        return (size_t) duration.count();
    }

    void beginStage(const std::string &name){
        reset();
        std::cout << name << " .. ";
        std::cout.flush();
    }

    void endStage(const std::string &str = ""){
        std::cout << "done. (took " << value() << " ms";
        if(!str.empty()){
            std::cout << ", " << str;
        }
        std::cout << ")" << std::endl;
    }
private:
    std::chrono::system_clock::time_point start;
};

使用方式

      Timer<> timer;
      timer.beginStage("START MESHING");
      cout << endl;

      if(!m.processing(path))
            return false;

      timer.endStage("END MESHING");
      std::cout << "TIMING: " << timer.value() << "ms" << endl;
原文地址:https://www.cnblogs.com/eat-too-much/p/14274084.html