在使用 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 進行傳輸的,所以作用較小。
反思:
由於第一次使用了外網,會有防火牆等不確定因素,造成資料失真。第二次在本地時,由於進行了資料庫訪問,同樣可能導致資料失真。所以以上結論基於全記憶體資料,本地環境進行資料傳輸測試。
之前由於需要也進行過各種效能測試。經常懶得進行最直接的測試,而是直接使用應用程式中的環境進行測試。由於許多不確定因素:伺服器、網路、資料庫等,造成了資料經常失真,又不得不排除各種原因,最後還是得使用最直接最純淨的方式來進行資料測試。得不償失啊!
以後要做效能測試,就一定要嚴謹,要在測試前想好純淨的測試用例,編寫正式、直接的測試**,這樣其實是最省時的方法。
WCF 中 TCP 與 HTTP 效能簡單比較
在使用 wcf 時,為了更好地進行除錯,我都選擇了 http 協議進行資料傳輸。最近專案對效能要求比較高,所以就換成了使用 tcp 協議。並對二者的效能進行了乙個簡單的測試。以下是測試結果 環境 cpu e5800 3.20ghz 3.19ghz ram 7.97gb 64 bit os,64 bi...
TCP與效能優化
tcp的可優化點 1.tcp三次握手增加了整整一次的往返時間 2.tcp慢啟動將被應用到每乙個新連線 3.tcp流量及擁塞控制會影響所有的連線吞吐量 4.tcp的吞吐量由當前擁塞視窗大小控制 結論 現代tcp連線的資料傳輸速度,往往受到接收端和傳送端之間往返時間的限制,在大多數情況下tcp的瓶頸是延...
HTTP與TCP的區別
一次面試中問到的問題,整理一下 首選需要提到osi open system interconnection 七層模型。第二列是相關協議 應用層http 用於封裝和顯示資料 telnet ftp 表示層會話層 傳輸層 tcp udp 網路層ip icmp igmp 資料鏈路層 物理層那麼,最明顯的區別...