2016-02-06 45 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。如果您使用可靠会话,则会再收到一条消息副本,直到收到来自接收方的确认为止。

因此,不仅流量很重要,而且本地内存占用也会很大。