2010-11-30 3 views
2

저는 거의 완전히 개발 한 .NET 4.0 클라이언트 프로파일, WPF + NHibernate 3 비즈니스 라인 응용 프로그램을 가지고 있습니다. 백엔드 데이터베이스는 NHibernate contrib JetDriver를 통해 액세스되는 Microsoft Access 파일입니다..NET 성능 문제 - Visual Studio 호스팅 프로세스

Visual Studio 2010에서 디버거를 통해 응용 프로그램을 실행할 때 응용 프로그램 성능이 매우 좋습니다. 그러나 Debug 나 Release .exe 파일이나 ClickOnce 배포를 실행하면 전체 응용 프로그램의 성능이 매우 느려집니다.

Google에서 검색 한 후 '시각적 스튜디오 호스팅 프로세스'옵션을 사용 중지하면 내 디버깅 환경이 .exe 파일을 직접 실행하는 것과 유사하게됩니다.

내가 알고 싶은 것은 왜 일반적인 디버깅 모드와 관련하여 속도가 느려지는 것입니까? 그리고 런타임에 문제를 어떻게 개선 할 수 있습니까?

컴파일 설정은 다음과 같이 표시됩니다 :

alt text

감사합니다,

답변

1

NHibernate에 성능 문제는 종종 구성을 log4net에 기인 할 수있다. log4net을 사용하고 있고 레벨이 DEBUG로 설정되어 있다면 NHibernate는 많은 로깅을 할 것입니다. 또한 성능이 VS 디버거에서는 허용되지만 배포에서는 허용되지 않는 이유 일 수 있습니다. log4net은 전개 환경의 폴더에 대한 쓰기 액세스 권한이 없기 때문에 로그 파일을 열지 못합니다. 이 링크를 참조하십시오 : http://jagregory.com/writings/empty-nhibernate-logs-and-poor-performance/.

PS - 액세스 백엔드와 함께 기간 업무 (LOB) 응용 프로그램을 조정하는 데 어려움을 겪고 있습니다.

+0

"PS - 액세스 백엔드와 함께 기간 업무 (LOB) 응용 프로그램을 조정하는 데 어려움을 겪고 있습니다." 롤, 알아! 응용 프로그램은 개념 증명과 같습니다. – LiamV

+0

NHibernate 3.0 (CR1)에는 log4net에 대한 참조가 없다. 또한 구성 요소 'show_sql'을 false로 설정했습니다. 다른 내부 로깅을 명시 적으로 비활성화해야합니까? – LiamV