代码段如下:
CMyTimer timer;
//第一次读100个数据
timer.BeginTimer();
modbus_read_registers(t_modbus,0, 100, read_registers);
timer.EndTimer();
double time1=timer.getDifferent();
TRACER(_T("timer1=%.3f [%d, %d]\r\n"),timer1,0,100);
//第二次读100个数据
timer.BeginTimer();
modbus_read_registers(t_modbus,0, 100, read_registers);
timer.EndTimer();
double time2=timer.getDifferent();
TRACER(_T("timer2=%.3f [%d, %d]\r\n"),timer2,0,100);
//第三次读100个数据
timer.BeginTimer();
modbus_read_registers(t_modbus,0, 100, read_registers);
timer.EndTimer();
double time3=timer.getDifferent();
TRACER(_T("timer3=%.3f [%d, %d]\r\n"),timer3,0,100);
运行结果:
time1=9.946 [0, 100]
time2=19.468 [0, 100]
time3=19.774 [0, 100]
求解,谁能解释:
- 为什么timer1消耗的时间会是后两次的一半呢?
- 如何才能让后两次的时间消耗也通timer1一样?