2016-02-06 46 views
0

如何優化nettcp綁定上的流量? 一個數據對象在內存中需要300-1000個字節。我需要轉移近1 000 000個物體。所以我可以創建超過1 Gb的流量。字段名稱的長度是否會影響序列化對象大小(即xml序列化程序在xml元素中使用名稱)? 我希望默認使用二進制序列化程序? 啓用gzip壓縮可以在1Gb大小,總時間包+網絡傳輸+解包時生效嗎? 可能在這種情況下更有效的方式創建自定義序列化程序?WCF nettcp流量優化

回答

0

默認情況下,net.tcp綁定將使用Microsoft二進制XML編碼,該編碼取決於您使用的XML標記的長度,但僅列出一次。所以如果你在一個WCF消息中傳遞所有1000000個對象,那麼所有的標籤只會出現一次。

但是更重要的是WCF默認使用緩衝模式。這意味着你將擁有內存中的所有對象(1Gb),然後WCF將它們序列化爲一些東西 - 假設這是另一個1Gb。如果您使用可靠會話,則會再收到一條消息副本,直到收到來自接收方的確認爲止。

因此,不僅流量很重要,而且本地內存佔用也會很大。