Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
具有netNamedPipeBinding的WCF性能不佳_Wcf_Performance_Netnamedpipebinding - Fatal编程技术网

具有netNamedPipeBinding的WCF性能不佳

具有netNamedPipeBinding的WCF性能不佳,wcf,performance,netnamedpipebinding,Wcf,Performance,Netnamedpipebinding,我正在使用带有netNamedPipeBinding的WCF服务将大量数据(非常长的对象列表)传输到客户端(在同一台机器上,非正常情况下)。 问题是整个调用大约需要20秒才能传输250MB的数据,即每秒10+MB。我希望在共享内存时,传输速率会快得多。有人知道如何提高我的表现和转学率吗? 这是我的app.config文件: <netNamedPipeBinding> <binding name="NetNamedPipeBinding_IDataServic

我正在使用带有netNamedPipeBinding的WCF服务将大量数据(非常长的对象列表)传输到客户端(在同一台机器上,非正常情况下)。 问题是整个调用大约需要20秒才能传输250MB的数据,即每秒10+MB。我希望在共享内存时,传输速率会快得多。有人知道如何提高我的表现和转学率吗? 这是我的app.config文件:

      <netNamedPipeBinding>
    <binding name="NetNamedPipeBinding_IDataService" closeTimeout="00:10:00"
      openTimeout="00:10:00" receiveTimeout="00:10:00" sendTimeout="00:10:00"
      transactionFlow="false" transferMode="Buffered" transactionProtocol="OleTransactions"
      hostNameComparisonMode="StrongWildcard" maxBufferPoolSize="2147483647"
      maxBufferSize="2147483647" maxConnections="10" maxReceivedMessageSize="2147483647">
      <readerQuotas maxDepth="32" maxStringContentLength="2147483647" maxArrayLength="2147483647"
        maxBytesPerRead="4096" maxNameTableCharCount="2147483647" />
      <security mode="Transport">
        <transport protectionLevel="None" />
      </security>
    </binding>
  </netNamedPipeBinding>


非常感谢

正如评论所说,造成问题的可能不是传输速率,而是序列化

有三件事需要考虑:

  • 序列化和反序列化的CPU使用
  • 在内存中保存对象的过程
  • 转移率
要通过它发送250 MB,将首先序列化,然后发送,然后反序列化。这可能导致内存中有3个数据副本,这可能导致磁盘抖动


几年前,我们遇到了类似的问题,最终切换到直接调用dll,将内存引用传递到列表将花费约1毫秒。

共享内存非常快,但命名管道不是共享内存。确定。您是正确的,但不要介意绑定的后端实现。这些速率是我对基本http绑定和非命名管道绑定的期望,它们应该快得多?您确定这真的是数据传输时间,而不是“非常长的对象列表”的序列化/反序列化吗?