WCF 中 TCP 與 HTTP 性能簡單比較


在使用 WCF 時,為了更好地進行調試,我都選擇了 HTTP 協議進行數據傳輸。最近項目對性能要求比較高,所以就換成了使用 TCP 協議。並對二者的性能進行了一個簡單的測試。以下是測試結果:

 

環境:
CPU: E5800 3.20GHz+3.19GHz
RAM: 7.97GB
64 bit OS, 64 bit processor

 

把服務端、客戶端都部署在本機進行數據傳輸測試。分如下場景進行測試:
1. 1000次請求,每次請求傳輸 1 個對象,每個對象 80 個屬性:
HTTP 平均耗時:6.2s左右。
TCP 平時耗時:3.9s左右。
結論:使用 TCP 連接,可以節省在建立連接時的性能消耗。對於進行大量連接時,相對 HTTP 有比較明顯的性能提升。

2. 100次請求,每次請求傳輸 500 個對象,每個對象 80 個屬性:
HTTP 平均耗時:19s左右。
TCP 平時耗時:18s左右。
結論:
當使用單個連接傳輸大數據量時,速度則主要取決於數據序列化及網絡傳輸速度,由於 Http 也是基於 TCP 進行傳輸的,所以作用較小。

 

 

反思:

由於第一次使用了外網,會有防火牆等不確定因素,造成數據失真。第二次在本地時,由於進行了數據庫訪問,同樣可能導致數據失真。所以以上結論基於全內存數據,本地環境進行數據傳輸測試。

之前由於需要也進行過各種性能測試。經常懶得進行最直接的測試,而是直接使用應用程序中的環境進行測試。由於許多不確定因素:服務器、網絡、數據庫等,造成了數據經常失真,又不得不排除各種原因,最后還是得使用最直接最純凈的方式來進行數據測試。得不償失啊!

以后要做性能測試,就一定要嚴謹,要在測試前想好純凈的測試用例,編寫正式、直接的測試代碼,這樣其實是最省時的方法。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM