2012-01-30 3 views
0

현재 WCF 서비스를 통해 프로그램의 일부 기능을 노출하고 있습니다. 그러나 WCF 서비스는 동일한 작업을 수행하는 응용 프로그램과 동일한 작업을 실행하는 데 약 3 배의 시간이 소요됩니다.WCF 서비스가 Windows 응용 프로그램에 비해 느림

이 함수는 DLL에서 사용할 수 있습니다. WCF 솔루션과 애플리케이션 솔루션을 만들어 속도를 비교했습니다. 이 테스트와 관련된 다른 코드/함수는 없습니다. 여기

는 (응용 프로그램과 WCF) 모두에 의해 사용되는 코드입니다 :

public String time(string file) 
{ 
    DateTime start = DateTime.Now; 
    FunctionCall(Params); 
    return String.Format("Time: {0}", DateTime.Now - start); 
} 

WCF의 설정 파일을 Visual Studio에서 기본적으로 생성 된 하나 2010 년

응용 프로그램 실행에 3 초 ~ WCF ~ 8 초가 소요됩니다. WCF 서비스에 약간의 오버 헤드가있을 수 있으므로 웹 서비스로 변경하여 동일한 테스트를 수행했지만 결과는 동일했습니다. WCF에 대한 모든 호출은 동일한 3x 요소를 제공합니다. 첫 번째 요소 일 뿐만이 아닙니다.

Windows 응용 프로그램과 비교하여 WCF 서비스가 dll을 호출하는 방식에 큰 차이가 발생할 수 있습니까?

감사합니다.

편집 :

서비스가 기능은 텍스트 파일을 구문 분석 IIS 7.5 (윈도우 서버 2008 R2) 에서 실행되고 있습니다.

문제는 WCF가 요청을 처리하는 방법이 아니라 요청을 처리하는 방법과 관련이 있습니다.

클라이언트 - WCF 통신

Client Request--> WCF : Fast (~25ms) 
WCF call --> Function : Slow (~8s) 
WCF Respond --> Client: Fast (~25ms) 

Windows 응용 프로그램

Application -->Function : Medium(~3s) 

FunctionCall이 그것을 호출하는 WCF 때 느리다? 그것은 동일한 dll과 같은 코드입니다. 비슷한 속도로 실행하지 않아야합니까?

+2

귀하의 질문은 DLL의 기능과 WCF 서비스의 호스팅 방식을 정확히 모른 채 대답 할 수 없습니다. – Yahia

+1

FunctionCall (Params)의 기능은 무엇입니까? –

+1

첫 번째 단계는 wcf 진단을 켜는 것입니다. – rerun

답변

0

wcf 서비스에 대한 정보를 추가해야합니다. 특히 InstanceContextMode - PerSession, PerCall 또는 Single에 대한 것입니다. PerCall을 사용하면 놓칠 수 있습니다.

관련 문제