前言
时间在写服务端程序中格外的重要常常用于计算延迟,一个常用的计算时间方法就是使用函数调用前后的 clock 之差除以精度算消耗的时机,常用的clock获取方法如下
time() 精度在1s
clock() 常常搭配 CLOCKS_PER_SEC(10^6) 精度在 1us
clock_gettime(CLOCK_MONOTONIC, ...) 精度1ns
gettimeofday() 精度 1us
Timer类
Timer类主要用来计时的一个类。timer变量定义之后即开始计时工作,之后可以调用 elapsed() 方法来测量对象自创建之后所流逝的时间。输出单位s,精度范围在 1us。
Timer使用场景
using boost::timer;
timer t;
Func();
cout << "Func cost:" << t.elapsed() << "s" << endl;
boost Timer实现
class timer
{
public:
timer() { _start_time = std::clock(); }
void restart() { _start_time = std::clock(); }
double elapsed() const
{ return double(std::clock() - _start_time) / C