2

Crystal Reports (XI)가 WCF 서비스에서 호스팅되는 경우 앱 성능 문제가 발생합니다. 성능 프로파일 러를 사용하여 ReportDocument.Load 호출이 10 초 이상 걸리는지 확인할 수있었습니다. 더 깊이 파고 들면 가장 문제가되는 것은 ReportClientDocumentClass.Open-method입니다.이 메서드는 전체 10 초를 소요합니다.Crystal Reports - ReportDocument.Load의 성능이 좋지 않음

우리는이 같은로드 메소드를 호출하고 있습니다 :

dim doc As ReportDocument = New CrystalDecisions.CrystalReports.Engine.ReportDocument 
doc.Load("filename") 

보고서 파일은 서비스보다 동일한 서버에 호스팅됩니다.

ReportDocument.Load 
ReportClientDocumentWrapper.EnsureDocumentIsOpened 
ReportClientDocumentWrapper.Open 
ReportClientDocumentClass.Open 

을 그리고 같은 나는 위에서 언급 한, ReportClientDocumentClass.Open에 대한 호출이 "매달려"는 하나입니다

ReportDocument.Load의 "스택 추적"은 다음과 같습니다. 이 문제를 일으킬 수있는 아이디어가 있습니까?

답변

2

원래의 문제는 프린터에 정확히 지적되었습니다. Open-method를 호출하면 보고서를 디자인 할 때 사용한 프린터에 연결하려고 시도합니다. 보고서가 배포되었을 때 프린터는 더 이상 사용할 수 없었지만이를 알기까지 약 15 초가 걸렸습니다.

보고서를 열고 프린터를 사용하지 않도록 설정하면이 특정 성능 문제가 해결되었습니다.

0

나는 내가 Client > WCF > Service 호출이 다음과 같은 성능 특성을 가지고 프로파일 오전 WCF 서비스를 발견했습니다 : 실행되지 후

  1. : 클라이언트의 새로운 인스턴스에 의해 서비스에

    1. 첫 번째 통화를 1-2 분 동안 클라이언트 : ~ 12-15 초;
    2. 클라이언트의 이전 인스턴스를 닫은 후 ~ 1.1 초;
    3. Windows를 다시 시작한 후 ~ 21 초; 클라이언트의 기존 인스턴스에 의해 서비스에
  2. 후속 호출 : ~ 0.1 초

5백12메가바이트의 RAM과 윈도우 2003 서버 SP2를 실행.

WCF 내에서이 성능 차이를 유발하는 것이 확실하지 않습니다.