小弟最近做了一个测试,
Client->send();
Sleep(timer)
服务器只管接受,
结果发现:Client 发送次数/s
Sleep 0 looptims msgs/sSleep 1~15 64msg/sSleep 16~31 32msg/sSleep 32~46 21msg/sSleep 47~62 16msg/sSleep 63~XXX 13msg 但是越来越接近1000/63
Sleep 100 10msg/s请问是不是Sleep的原因导致了实际上的发送频率并不是期望那样,比如我Sleep(1),得到的并不是1000/1 = 1000msg/second 或是Sleep(2),得到的也不是1000/2 = 500msg/second而是64msg/second,计算了一下是1000/64 = 15.6666毫秒/msg
Client->send();
Sleep(timer)
服务器只管接受,
结果发现:Client 发送次数/s
Sleep 0 looptims msgs/sSleep 1~15 64msg/sSleep 16~31 32msg/sSleep 32~46 21msg/sSleep 47~62 16msg/sSleep 63~XXX 13msg 但是越来越接近1000/63
Sleep 100 10msg/s请问是不是Sleep的原因导致了实际上的发送频率并不是期望那样,比如我Sleep(1),得到的并不是1000/1 = 1000msg/second 或是Sleep(2),得到的也不是1000/2 = 500msg/second而是64msg/second,计算了一下是1000/64 = 15.6666毫秒/msg
在win nt 下,起最小是时间精度是15ms,win 9x好象是30ms.
sleep(x),如果x>0 && x<15的话,他实际sleep的时间应该是>=15ms的.