我正在構建我正在構建的通信中間件中的延遲測量。我的工作方式是我週期性地從我的發佈應用程序發送探測消息。訂閱應用程序會收到此探針,將其緩存,並在選擇時發回回聲,注意msg保持「保持」狀態的時間。訂閱應用程序接收這些回波並計算等待時間爲(now() - time_sent - time_on_hold)/ 2。測量窗口上的交叉過程延遲
這種工作方式,但當「保持時間」大於0時,數字差別很大(3x)。也就是說,如果我立刻回覆msg,我會在我的開發環境中得到50us左右,如果我等待,然後發送msg回到150us時間(儘管我可以隨時隨地打折)。我使用QueryPerfomanceCounter進行所有測量。
這是所有內一個單一的Windows 7盒。我在這裏錯過了什麼?
TIA。
你們是不是要確定「在線'延遲時間?你會不會更好地嘗試使用ICMP數據包併爲此進行ping? – 2010-05-25 16:06:17
我實際上試圖確定完整的堆棧延遲,即應用程序,內核和網絡。 – samwise 2010-05-25 17:27:05