利用c++11 chrono库记录时间

在C++11中,是标准模板库中与时间有关的头文件。该头文件中所有函数与类模板均定义在std::chrono命名空间中。当我们想要记录模块代码或者函数的运算耗时的时候,可以利用chrono库实现。相关的代码如下:

#include 
#include 

class Timer
{
public:
    Timer();
    virtual ~Timer();
    int elapsedSecond();
    int elapsedMillisecond();
    int elapsedMicroSecond();
    int elapsedNaoSecond();
private:
   std::chrono::high_resolution_clock::time_point start_;
};

Timer::Timer() {
    start_ = std::chrono::high_resolution_clock::now();
}

Timer::~Timer() {}

int Timer::elapsedSecond() {
    return std::chrono::duration_cast(std::chrono::high_resolution_clock::now() - start_).count();
}

int Timer::elapsedMillisecond() {
    return std::chrono::duration_cast(std::chrono::high_resolution_clock::now() - start_).count();
}

int Timer::elapsedMicroSecond() {
    return std::chrono::duration_cast(std::chrono::high_resolution_clock::now()-start_).count();
}

int Timer::elapsedNaoSecond() {
    return std::chrono::duration_cast(std::chrono::high_resolution_clock::now()-start_).count();
}

int main()
{
    Timer timer;
    std::cout << timer.elapsedNaoSecond()<< std::endl;
    std::cout << timer.elapsedMicroSecond() << std::endl;
    std::cout << timer.elapsedMillisecond() << std::endl;
    std::cout << timer.elapsedSecond() << std::endl;
    return 0;
}

你可能感兴趣的:(C++)