2012-10-19 106 views
1

我有一個多線程的應用程序,每天要調用相同的服務200,000次以上。目前它爲每個調用實例化一個新的ClientBase自動生成的代理。WCF客戶端可伸縮性建議

我該怎麼做才能提升性能?實例化一個客戶端並共享它?我應該調查一個異步客戶端嗎?如果是,可以共享嗎?

+0

每天200000個電話沒什麼大不了的。爲每個調用請求代理是相當便宜的(WCF內部緩存它)。你確定瓶頸在客戶端嗎? – UserControl

+0

更多信息:調用不是單向的。他們通過一些參數並獲取數據。此外,基本授權被注入到請求標題中。 – dcrobbins

+0

首先你需要指定你想要達到的目標。你想減少應用程序響應時間?允許在同一時間框架內處理更多請求?儘量減少系統資源使用量?您的應用是ASP.NET網站,Silverlight應用還是Windows窗體? 「提升性能」是什麼意思? – UserControl

回答

0

您的服務操作的性質是什麼?單向操作可以通過最小的努力輕鬆切換到異步。尤其是使用TPL(來自Async方法系列)。

通常對象實例化也很便宜。只要確保它沒有一個沉重的構造函數。並儘量減少一些成員,使一個類型被構建爲儘可能輕量級。這不是優化的好處。

您可能需要優化服務調用,數據類型(德)在他們期間序列化。