1.timer是一个很实用的小工具,而且十分简单,源码也十分简洁,主要是使用了标准库中的std::clock()实现的
例子:
timer t;
.........
..........
cout<<"time elapsed"<<t.elapsed()<<"s"<<endl;
打印出从开始到结束的时间间隔,以秒为单位
timer源码十分简洁
class timer { public: timer() { _start_time = std::clock(); } void restart() { _start_time = std::clock(); } double elapsed() const { return double(std::clock() - _start_time) / CLOCKS_PER_SEC; } double elapsed_max() const { return (double((std::numeric_limits<std::clock_t>::max)()) - double(_start_time)) / double(CLOCKS_PER_SEC); } double elapsed_min() const { return double(1)/double(CLOCKS_PER_SEC); } private: std::clock_t _start_time; };
可以看到类中有个成员变量_start_time ,每次初始化一个该类对象时就把当前时钟的值赋给它以记录开始时间,想计算一段时间后时钟的间隔,只需调用elapsed(), elapsed()函数计算此刻时钟的值与_start_time差并除以CLOCKS_PER_SEC。其中CLOCKS_PER_SEC是ctime中定义的宏,表示一秒钟内时钟的滴答次数,为1000,也就是一秒钟时钟滴答计数为1000。
elapsed_min()函数返回能记录的最小时间间隔,也就是1毫秒。elapsed_max()返回能记录的最大时间间隔。