如何优化nettcp绑定的流量?一个数据对象在内存中需要300-1000个字节.我需要转移近1000000个物体。这样我就可以创建超过1GB的流量。字段名的长度是否会影响序列化的对象大小(例如,xml序列化程序在xml元素中使用名称)?我希望默认情况下使用二进制序列化程序?启用gzip压缩对1Gb大小、总时间包+网络传输+解压缩有效吗?在这种情况下,是否可以更有效地创建自定义序列化程序?
发布于 2016-02-07 22:13:12
默认情况下,net.tcp绑定将使用Microsoft二进制XML编码,这取决于您使用的XML标记的长度,但只列出一次。因此,如果您在一个WCF消息中传递所有1000000个对象,那么所有标记将只出现一次。
但是更重要的是,WCF默认使用缓冲模式。这意味着您的所有对象都在内存中(1GB),然后WCF将它们序列化为某种东西-让我们假设这是另一个1GB。如果您使用可靠的会话,那么另一个消息副本将驻留在内存中,直到收到接收方的确认为止。
因此,不仅通信量很重要,而且本地内存占用也会很大。
https://stackoverflow.com/questions/35240588
复制相似问题