2011-07-28 34 views
2

我正在開發一個依賴於.NET Web服務的Android應用程序來獲取動態數據。因此,爲了與SOAP Web方法進行通信,我使用了KSOAP2第三方API。它工作正常。但我需要使用KSOAP2獲取每個Web服務調用的往返時間,因爲與運行在iPhone中的相同應用程序相比,我的應用程序運行速度較慢。所以我需要了解RTT以改善我的Android應用程序的性能。如何在android中使用KSOAP調用SOAP webservice時獲取往返時間?

回答

0

您可以將基於時間測量技術的調用包裝爲.NET服務,並在日誌中添加響應時間以供日後檢查。像這樣的東西...

long start = System.currentTimeMillis(); 
<...call to .NET server ...> 
System.out.println("Time taken: "+ ((System.currentTimeMillis() - start)) + "ms"); 
+0

我也試過相同的,但我們沒有任何其他方式由KSOAP2 API定義? – sathish

+0

這個答案是錯誤的。 RTT是兩個端點之間的雙向延遲。如果您打電話給.NET服務器,由於TCP連接建立,請求,然後響應(可能在許多數據包中),您將得到兩倍以上的RTT。這個措施是什麼(TCP建立時間+應用響應時間+ TCP撕下時間)。爲了測量RTT,您需要能夠記錄正在發送的TCP片段與另一端點確認(ACK'd)之間的時間,或者只需簡單地ping該端點即可。 – Astaar

相關問題