2011-12-20 31 views
1

私は60,000のオブジェクトを返す機能を持っています。オブジェクトにはわずかなプロパティしか含まれていません。この機能は、ローカルマシンのnon-wcfモードで実行すると数秒で動作します。しかし、バインディングを下回るローカルマシンでWCFモードで実行するには30分以上かかります。WCFが非常に遅い

誰もWCFモードでのパフォーマンスを改善するためのアイデアはありますか?ありがとう!

<binding name="ReliableBindingConfig" closeTimeout="00:20:00" receiveTimeout="00:40:00" openTimeout="00:20:00" sendTimeout="00:40:00"> 
     <transactionFlow /> 
     <reliableSession maxRetryCount="12" ordered="true" inactivityTimeout="00:40:00" /> 
     <mtomMessageEncoding maxBufferSize="2147483647" maxReadPoolSize="2147483647" maxWritePoolSize="2147483647"> 
     <readerQuotas maxDepth="32" maxBytesPerRead="4096" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxNameTableCharCount="16384" /> 
     </mtomMessageEncoding> 
     <httpTransport maxBufferPoolSize="2147483647" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647" /> 
    </binding> 
+0

どのようにオブジェクトを取得していますか?一度に1つ、ページされる、またはすべてがリストにシリアル化されていますか? – jgauffin

答えて

1

バッファサイズを最適化するようにmaxBufferSizeとmaxBufferPoolSizeを調整します。

サービスが多すぎると、すべてのオブジェクトをメモリに読み込むのが忙しくなりません。小さすぎるとネットワークトラフィックが多すぎるため、速度が遅くなります。

最適なバッファサイズを見つけるのにかかる時間を記録する簡単なテストハーネスを書くことができます。