话不多说,直接上干货:
Timer类:
#include <iostream>
#include <chrono>
using namespace std::chrono;
class Timer
{
public:
Timer() :m_begin(high_resolution_clock::now()){}
~Timer(){};
void reset(){ m_begin = high_resolution_clock::now(); }
//默认输出毫秒
template<typename Duration = milliseconds>
int64_t elapsed() const
{
return duration_cast<Duration>(high_resolution_clock::now() - m_begin).count();
}
//微妙
int64_t elapsed_micro()
{
return elapsed<microseconds>();
}
//微妙
int64_t elapsed_nano() const
{
return elapsed<nanoseconds>();
}
//秒
int64_t elapsed_seconds() const
{
return elapsed<seconds>();
}
//分钟
int64_t elapsed_minutes() const
{
return elapsed<minutes>();
}
//小时
int64_t elapsed_hours() const
{
return elapsed<hours>();
}
private:
time_point<high_resolution_clock> m_begin;
};
测试用例:
void futureFun()
{
std::cout << "hello world" << std::endl;
}
int main(int argc, char *argv[])
{
Timer t;
futureFun();
std::cout << t.elapsed() <<"毫秒"<< std::endl; //打印futureFun函数耗时
std::cout << t.elapsed_nano() << "纳秒" << std::endl;
std::cout << t.elapsed_seconds() << "秒" << std::endl;
std::cout << t.elapsed_minutes() << "分钟" << std::endl;
std::cout << t.elapsed_hours() << "小时" << std::endl;
getchar();
return 0;