簡體   English   中英

netTcp的執行速度比basicHttp慢,是正常的嗎?

[英]netTcp performing slower than basicHttp, is that normal?

考慮以下WCF服務的基本單元測試代碼。

for (int i = 0; i < 10000; i++)
{                
  ServiceClient proxy = null;
  try
  {
    proxy = new ServiceClient("basicHttpService"); // or netTcpService
    Order[] orders = proxy.Find(Guid.Empty);
  }
  finally
  {
    if (proxy != null && proxy.State == CommunicationState.Opened)
      proxy.Close();
  }
}

netTcp終結點需要2.5分鍾進行10k迭代,而basicHttp一個需要23秒,這讓我感到非常驚訝。 在完整循環期間保持連接打開狀態會使兩個端點的性能大致相同。 (〜20秒)

與basicHttp相比,打開netTcp連接是否繁重是正常的嗎?

不知道傳輸對象的性質很難給出准確的答案,但是我猜測在此示例中,傳遞的數據量很小。 當傳遞大量數據時,我已經看到從http轉到tcp的性能有了顯着提高。

另外,不要忘記tcp會話是可靠的 -有一整套WCF“功夫”涉及握手和安全性,以確保維持可靠的會話。 您可以嘗試關閉綁定的安全性,看看是否有任何明顯的不同(不一定是建議!)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM