2010-07-14 2 views
7

웹 응용 프로그램을 디버깅 (F5)에서 시작하거나 ASP.NET 작업자 프로세스에 연결하면 매우 느리게 응용 프로그램에서 어셈블리가로드되어 개별적으로 이름을 읽을 수 있습니다. VS2010의 상태 표시 줄을 스크롤하면됩니다.VS2010 디버그 항목이 매우 느립니다.

디버깅을 시작할 때 MSVSMON.exe는 50 %의 CPU를 사용하고 50 %의 확률로 전체 코어를 채우는 것을 볼 수 있습니다. 또한이 Visual Studio 원격 디버깅 모니터로 설명되어 있는지, 내 컴퓨터에 로컬 모든 디버깅 때문에이 심지어 사용해야합니다 혼란 스러워요.

관련이있을 수 있다면 사실상 RDP로 연결된 환경을 실행하고 있습니다.

호스트 머신 : 서버 2008 엔터프라이즈 R2 듀얼 코어 제온 2.53GHz로

가상 인스턴스 : Win7에 기업이 정상 보이는가 전체 프로세서 할당

램 6GB? 로컬로 디버깅 중이라면 MSVSMON도 실행해야합니까?

+0

디버깅, 로컬 또는 원격, 웹 또는 정상 프로세스에서 성능 문제가 없었습니다. VS는 x32를 실행 중이고 x64를 실행하는 원격 컴퓨터로 실행됩니다. –

답변

19

Menu.Debug.DeleteAllBreakpoints

나를 위해 일했다.

+0

나는 이유를 모르지만 이것은 나를 위해 또한 효과가있다.디버깅에서 완성 된 웹 페이지까지 20 초에서 3 초가 소요되었습니다. 그러나 나는 이유를 알고 싶다! 나는 단지 같은 프로젝트 (단 한 번도 맞지 않는) 안에 몇 개의 중단 점을 가지고 있었다. – Sire

+0

VS2010에는이 버그와 잃어버린 부분이나 다른 부분에 대한 버그가 있습니다. –

+2

이름으로 중단 점을 추가하면 (함수로 나누기) 디버거는로드 된 모든 dll에 대한 모든 기호를 검사하여 주어진 이름과 일치하는 항목이 있는지 확인해야합니다. 그것은 항상 버그가 아니라 시간이 걸립니다. –

4

예, 64 비트 프로그램을 디버깅 할 때 msvsmon.exe가 사용됩니다. Visual Studio는 완전히 32 비트이기 때문에 원격 디버거가 분할을 연결하는 데 필요합니다.

속도 저하가 원격 디버거로 인해 발생한다고 가정 할 이유가 없습니다. .pdb 파일을 찾아서로드하기 위해 열심히 노력하면 가능할 것입니다. 또는 실수로 혼합 모드 디버깅 옵션을 켜면 디버거에서 관리되지 않는 DLL로드를 모두보고 심볼을 찾을 수 있습니다. 이것들은 단지 추측 일뿐입니다.

3

특히 원격 기호 옵션 중 하나가 구성되어 있고 MS 서버에서 기호가없는 다양한 DLL에서 '무시'를 설정하지 않은 경우 기호를 검색하면 디버그 시작시 매우 느립니다.

이들은 코드의 타사 구성 요소와 같은 것일뿐만 아니라 그래픽 드라이버와 같이 삽입 된 DLL을 연결하기 때문에로드하려는 항목을 주시 할 가치가 있습니다.

디버깅을 시작하는 동안 피들러 (http://www.fiddler2.com/fiddler2/)를 실행하면 기호를 원격으로 가져 오는 경우 표시됩니다.

원격 심볼 가져 오기를 위해 VS가 명시 적으로 설정되지 않은 경우에도 (즉, tools-> options-debug) _NT_SYMBOL_PATH 환경 변수를 따릅니다. 설정되어 있는지 확인합니다.

3

이 해결책이 나에게 도움이되지는 않았지만이 문제가 발생했습니다. 결국, 도구 -> 옵션 -> 디버깅 -> 기호로 이동하고 기호 파일 (.pdb) 위치를 선택 취소하고 빈 기호 캐시 단추를 클릭해야했습니다. 그 후 디버깅이 훨씬 더 좋았습니다.

+1

아주 유효한 점은, 이것은 내가 초당 1의 속도로 내 어셈블리를로드하는 것을 볼 수있는 정확한 시나리오는 아니지만, 어셈블리를로드하는 경우 디버그 항목을 크게 줄일 수있는 소유하고 있지 않음을 알 수 있습니다. 기호 소스를 사용하여 .NET 코드로 디버그하는 기능은 훌륭하지만 특정 요구 사항에 대해서만 awesomeness를 설정하고 즉시 해제해야합니다. –

0

나를 위해 문제는 다른 프로세스의 속도를 늦추고있는 PUP (잠재적으로 원하지 않는 프로그램)가 설치된 것입니다. 몇 번 MSVSMON이이 동작을 보여 주자 Cltmng.exe 프로세스 (도관에 의한 검색 보호)가 비정상적인 양의 CPU를 사용하고 문제를 해결한다는 사실을 알고있었습니다.

관련 문제