簡體   English   中英

Silverlight 4最快的WCF綁定

[英]Fastest WCF binding for Silverlight 4

我正在一個Silverlight 4客戶端調用返回大量數據的WCF Web服務的項目中。 一些分析顯示

  • webservice方法的實際執行時間不到一秒鍾(調用另一台服務器/生成一個非常大的數據集等,已經在那里進行了優化)

  • 數據傳輸取決於網絡,但通常不是問題-它可以根據需要進行傳輸

  • 客戶端收到http答案(我在Fiddler中看到它已完成)與Silverlight客戶端中觸發的Completed事件之間的時間〜15秒 (IE / firefox / chrome之間沒有區別)

我認為15秒鍾的延遲大部分用於反序列化。

我的綁定使用HttpTransportBinaryMessageEncoding ,並在其頂部進行gzip壓縮。 Gzip壓縮似乎對性能沒有影響:無壓縮和最大壓縮級別之間的差異幾乎不存在。 http答案是未壓縮的〜15 Mb和壓縮的〜400 kb(即使使用二進制XML也會產生很多開銷!)

注意:Web服務完全是臨時的,我對互操作性不感興趣,並且在選擇協議方面擁有完全的自由。

一個明顯的解決方案是傳輸較少的數據,但是引入分頁將需要對體系結構進行一些重大更改,而這些更改目前尚不可行。 減少數據集也相當困難,因為該解決方案完全可以由最終用戶定制,並且您知道用戶並不總是知道自己在做什么,最終導致創建大量請求。

我剩下wcf綁定了:該項目從SL 2開始,並通過SL 3和SL 4進行了演變,因此也許我缺少Silverlight 4中引入的某種更快的綁定。我還有另一個更快的編碼器(或綁定)嗎?可以用來避免客戶端上的反序列化瓶頸?

怎么樣“作弊”(僅提高預期的性能)?

在第一次調用時返回一小部分數據,然后啟動一個后台進程以獲取所需的所有信息。 如果您顯示的數據為只讀數據,則可能會有所幫助。

編輯:查看優先級綁定...它允許您將多個數據源綁定到您的網格。 如果慢速連接稍后再返回,silverlight將自動綁定新的數據源...

暫無
暫無

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

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