2011-12-20 5 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

개체를 어떻게 가져 오나요? 한 번에 하나씩, 페이지 단위로 또는 모두 목록에 일련 번호가 있습니까? – jgauffin

답변

1

maxBufferSize 및 maxBufferPoolSize를 조정하여 버퍼 크기를 최적화하십시오.

너무 커서 서비스가 너무 많아서 모든 개체가 메모리에로드되지 않습니다. 너무 작 으면 너무 많은 네트워크 트래픽이 발생하고 속도가 느려집니다.

최적의 버퍼 크기를 찾는 데 걸리는 시간을 기록하는 간단한 테스트 장치를 작성할 수 있습니다.