【问题标题】:WCF nettcp traffic optimizationWCF nettcp 流量优化
【发布时间】:2016-02-06 11:43:15
【问题描述】:

如何优化 nettcp 绑定的流量? 一个数据对象在内存中占用 300-1000 个字节。我需要转移近 1 000 000 个对象。所以我可以创建超过 1 Gb 的流量。字段名称的长度是否会影响序列化对象的大小(即 xml 序列化程序在 xml 元素中使用名称)? 我希望默认使用二进制序列化程序? 启用 gzip 压缩对 1Gb 大小、总时间打包 + 网络传输 + 解包有效吗? 在这种情况下,创建自定义序列化程序可能是更有效的方法吗?

【问题讨论】:

    标签: wcf nettcpbinding binary-serialization


    【解决方案1】:

    默认情况下,net.tcp 绑定将使用 Microsoft 二进制 XML 编码,这取决于您使用的 XML 标记的长度,但只列出一次。因此,如果您在一条 WCF 消息中传递所有 1000000 个对象,那么所有标签只会出现一次。

    但更重要的是 WCF 默认使用缓冲模式。这意味着您将所有对象都保存在内存中(1 Gb),然后 WCF 会将它们序列化为一些东西 - 假设这是另一个 1 Gb。如果您使用可靠会话,那么在收到来自接收方的确认之前,内存中将多一份消息副本。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-07-24
      • 1970-01-01
      • 1970-01-01
      • 2010-12-08
      • 2015-03-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多