私はnetNamedPipeBindingでWCFサービスを使用して、大量のデータ(非常に長いオブジェクトのリスト)をクライアント(もちろん、同じマシン上にあります)に転送しています。 問題は、コール全体が約250MBのデータを転送するのに約20秒かかります。これは約10MB /秒です。私は、メモリを共有すると、転送速度がはるかに速くなることを期待していました。誰も私のパフォーマンスと転送速度を向上させる方法を知っていますか?WCF with netNamedPipeBinding bad performance
<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>
どうもありがとう: はここに私のapp.configファイルです!
共有メモリは非常に高速ですが、名前付きパイプは共有メモリではありません。 – vcsjones
OK。正しいですが、バインディングのバックエンドの実装は気にしないでください。これらのレートは、基本的なhttpバインディングから期待されるものであり、はるかに高速でなければならない名前付きパイプバインディングではありません。 – Omri
どのようにスループットを測定していますか?本当にデータ転送時間であり、あなたの「非常に長いオブジェクトリスト」のシリアル化/逆シリアル化ではないと確信していますか? –