Visual Studio의 느린 디버깅 문제


87

내 Visual Studio 인스턴스에서 C # 콘솔 응용 프로그램에서 한 줄의 반환을 작성 했더라도 F5실제 코드를 실행하려면 키를 누른 후 1 분 정도 걸립니다. 누르기 F5- main함수 의 return 문에 중단 점을 설정했습니다 ). 뭐가 잘못 되었 니? 체크리스트가 있습니까?

Visual Studio 2008 VSTS 버전을 사용하고 Windows Server 2003 x64에서 디버깅하고 있습니다.


2
확인하기 위해 ... 코드를 실행하려고 할 때 사용할 수있는 메모리가 얼마나됩니까? VS는 내 경험에 비추어 볼 때 기억력이
뛰어납니다

1
당신의 하드웨어는 무엇입니까? Visual Studio는 디스크 및 CPU 집약적이므로 예산 가격이 책정 된 시스템을 사용하면 성능이 저하됩니다.
William Holroyd

1
> 2-3 조건부 중단 점을 심하게 ... VS에 의해 처리되는 데
사이먼 버컨

4G 메모리가 있고 다른 프로세스가 동시에 실행되지 않습니다. 내 컴퓨터를 몇 번 다시 시작했는데 같은 증상이 나타납니다. 나는 일주일 전에 그러한 문제를 만난 적이 없습니다. 다른 아이디어가 있습니까?
George2

2
디버그-> Windows-> 중단 점 (Ctrl-Alt-B)에 모두 나열됩니다. 그러나 당신은 당신이 어떤 ... 만든 경우 알 것입니다
사이먼 버컨

답변:


150

당신은 "모든 중단 점 삭제"버튼 (또는 사용 클릭해야한다는 당신은 --- 모든 중단 점을 삭제 메모를해야 할 수 있습니다 Ctrl+ Shift+을 F9), NOT 단지 하나씩 삭제합니다. Visual Studio가 솔루션 설정을 망가 뜨린 경우 후자가 작동하지 않습니다. 이것이 작동하려면 먼저 중단 점을 추가해야 할 수도 있습니다 (영리 하군요?).

최악의 경우 .suo파일 을 삭제 하고 Visual Studio가 처음부터 새 파일을 시작하도록 해야 할 수 있습니다 . 그러나 개인 솔루션 구성 설정은 손실됩니다 (다른 솔루션이 아닌이 솔루션에 대해서만). 그러나 이것이 문제인지 여부를 결정할 때까지 일시적으로 파일을 이동 / 이름을 바꿀 수 있습니다. 이렇게하면 언제든지 다시 이동할 수 있습니다. 일부 온라인 리소스에서 .ncb파일 삭제 (이동 / 이름 바꾸기)를 권장하는 것을 보았습니다 .


2
안녕, 츠 바이 터 린데. 병목 현상이 네트워크를 처리해야한다는 것을 알았습니다. 네트워크 케이블을 뽑으면 디버깅 성능이 매우 좋습니다. 이유에 대한 아이디어가 있습니까? 그리고 더 평가하는 방법?
George2

14Mb .suo 파일을 삭제하면 저에게 효과적이었습니다. :) 이제 150Kb의 작은 크기입니다. VS2010 Pro에서 Ultimate로 업그레이드 한 후 문제 발생
GreyCloud

+1. 정말 감사합니다). 내 VS 2010은 워크 스테이션에서 프로젝트를 시작하는 데 2 ​​분이 걸렸습니다. 허. 어떤 버그 ....
아르센 Zahray

.suo 파일도 삭제했지만 Visual Studio가 실행되는 동안 삭제했습니다. Visual Studio를 다시 시작하면 디버거가 다시 연결되어 대부분의 설정이 유지되는 것 같습니다.
stiduck

+1 정말 감사합니다. 그래서 제 경우에는 suo 파일을 삭제하는 것이 완벽하게 작동했습니다.
딘 서

26

나는 이것을 전에 본 적이 있습니다. 모든 중단 점을 삭제 한 다음 원하는 중단 점을 설정하십시오. 을 누르십시오 F5. 지금은 더 빠릅니까?

방금 .NET 소스 디버깅 기능 설정에 대해 언급 한 것을 확인했습니다. 그것을 비활성화하십시오. Microsoft의 원본 서버에 대한 네트워크 연결이 느릴 수 있습니다. 또한 메뉴 도구옵션디버깅심볼 에서 심볼 서버 연결을 비활성화합니다 .

또한 메뉴 도구옵션디버깅일반 에서 "속성 평가 및 기타 암시 적 함수 호출 사용"을 비활성화 해보 십시오 .


1
내 중단 점 창에는 Main 함수의 return 문에 하나만 있습니다. 다른 체크리스트가 있습니까?
George2

1
시도 할 일이 더 추가되었습니다. 도움이되기를 바랍니다.
m-sharp

Main 함수의 return 문에서 단 하나의 중단 점을 제거했지만 여전히 응용 프로그램을 시작하고 중지하는 데 매우 느리고 1 분 정도 걸립니다. 다른 아이디어가 있습니까?
George2

문제를 분리하는 또 다른 아이디어가 있습니다. 네트워크 케이블을 분리하고 Visual Studio를 다시 시작한 다음 프로젝트에서 F5 키를 누르십시오. 변경 사항이 있습니까?
m-sharp

1
이를 비활성화하면 Microsoft의 원본 서버에 대한 네트워크 연결이 느려질 수 있습니다. 또한 도구의 모든 기호 서버 연결을 사용하지 않도록 설정> 옵션> 디버깅> 기호 - 이것은 나를 위해 일한
유수프 아자 드

19

또는 솔루션 (.sln) 파일 옆에있는 .suo 파일을 제거하십시오. 이것은 디버그 세션을 시작하고 중지하는 데 오랜 시간이 걸리는 문제를 해결했습니다.


내 정신을 저장하고 VS2010을 다시 설치하면 저장됩니다. 감사!
Chuck Dee 2011

이것은 MSDN에서도 참조 된 솔루션입니다 : social.msdn.microsoft.com/Forums/vstudio/en-US/…
ecoe

이를 확인하면 2003.NET 및 2005 이전 버전에도 적용됩니다. 한 응용 프로그램에 몇 개의 중단 점이 있고 정상적으로 실행됩니다. 몇 가지 중단 점 추가 ... 100 % CPU 사용량 및 디버깅시 VS에서 끔찍한 깜박임. 닫힌 VS, 삭제 .suo, 다시 열림 및 디버깅이 다시 빠릅니다.
AlainD

이것은 항상 내가 찾을 수있는 솔루션입니다 VS 디버깅의 측면에서 너무 느린 얻을 때마다 작동
라비

또는 삭제하기 전에 먼저 .suo 파일의 이름을 변경하여 이전 상태로 되돌릴 수 있습니다.
Peter Mortensen

12

나는이 문제가 있었다. 나열된 모든 조언을 시도하고 모든 Visual Studio 확장을 제거한 후 마침내 IntelliTrace가 활성화되었음을 알게되었습니다. 비활성화하면 모든 것이 해결되었습니다.

방법 : IntelliTrace 활성화 및 비활성화


SharpDX를 사용하는 프로젝트가있는 경우에도 문제가 해결됩니다. 저에게 효과적이며 이제 그래픽 성능이 정상으로 돌아옵니다.
komorra

SharpDX와 Debug-Build를 사용하는 특별한 경우에도 같은 효과가 있었지만 DX 디버깅 만 가능했습니다. 필요하지 않은 경우 "DeviceCreationFlags.Debug"를 검색하여 비활성화하십시오
thewhiteambit dec

VS2015에서는 'Intellitrace 활성화'를 선택 취소하고 확인을 클릭했습니다. 나중에 'Intellitrace 및 호출 정보'에서 'Intelllitrace 이벤트 전용'으로 변경해야한다는 사실을 발견했습니다. 그렇지 않으면 'Intellitrace 활성화'가 계속 확인됩니다!
smirkingman

문제를 해결했습니다! (MS 코멘트 : "이 항목은 Visual Studio 2010 Ultimate에만 적용됩니다."를 믿지 마십시오.) 저는 2017 년 무료 버전을 가지고 있으며 디버깅 속도를 획기적으로 향상 시켰습니다!
marsh-wiggle

VS 2017 이상의 IntelliTrace는 엔터프라이즈 전용 기능이므로 문제가 해결되지 않았습니다 (VS 2017 Pro 버전 만 있었기 때문에).
FoxDeploy

6

많은 중단 점이 설정되어 있습니까? 이는 시작 시간을 정말로 늦출 수 있습니다. 새 모듈이 프로세스 주소 공간에로드 될 때마다 모든 모듈이 유효한지 확인해야합니다.


사용자 모드 코드에는 중단 점이 하나뿐입니다. 하지만 Visual Studio의 소스 디버깅 기능을 사용하여 .Net 내부 코드에 중단 점을 설정하기 일주일 전을 기억했습니다. 내가 설정 한 .Net 내부 중단 점을 포함하여 모든 중단 점을 확인하는 방법이 있습니까?
George2

없음, 그러나 여전히 느린, 추가 아이디어가 있습니까?
George2

실제로는 하드웨어가 정상이어야하고 내가 시도한 다른 모든 항목은 다른 댓글 작성자가 확인한 것 같습니다. 이 시점에서 나는 아마도 Visual Studio를 다시 설치하려고 할 것입니다.-설치에 문제가있을 수 있습니다.
1800 INFORMATION

다른 디렉토리에 다시 설치했지만 동일한 증상이 나타납니다. 다른 아이디어가 있습니까?
George2

6

메뉴 도구옵션디버거기호로 이동하여 공용 기호가 설정되어 있는지 또는 UNC 네트워크 경로가 설정 되어 있는지 확인하십시오 . 또한 메뉴 도구 * → 옵션디버거일반 을 확인하여 소스 서버가 설정되어 있는지 확인합니다.

이들 모두는 느린 네트워크 속도 또는 사용할 수없는 서버를 기반으로 디버깅에 영향을 미칠 수 있습니다. 5 분 대기 시간은 네트워크 시간 초과입니다.

옵션에 아무것도 설정되어 있지 않으면 _NT_SYMBOL_PATH 환경 변수가 설정되어 있는지 확인하십시오.


감사합니다. 나는 때때로 모듈 창에 1 개 또는 2 개의 심볼 파일을로드하여 UNC 경로를 통해 빌드에서 심볼을 가리 키거나 더 이상 존재하지 않는 가상 머신을 가리키는 빈도가 낮습니다. 디버거 / 심볼 설정에서 이러한 모든 경로를 저장했다는 사실을 몰랐습니다.
brian

6

제 동료는 매우 느리게 응답하는 Visual Studio를 사용했으며 디버깅하는 동안 단계를 수행하는 데 문자 그대로 몇 분이 걸렸습니다.

근본 원인은 Visual Studio가 실행되는 동안 미친 바이러스 백신 프로그램 (Threatfire)으로 밝혀졌습니다. 프로세스를 종료하면 즉시 모든 것이 해결되었습니다.


ESET 바이러스 백신을 비활성화 할 때까지 직장에서 끔찍한 웹 디버깅 경험을했습니다. F5를 누른 후 응답 시간이 2-3 분에서 2-3 초로 단축되었습니다.
James Hulse

1
ThreatFire를 잠시 중단하는 것도 저에게 많은 도움이되었습니다. 감사합니다! (! 일시적으로 그 정도를 조금 너무 똑바로 떨어져 도왔다 전환,하지만.)
존 쿰즈

Malwarebytes가 내 문제의 원인이었습니다. 종료하면 속도 저하가 해결되었습니다.
Ben Rubin

또한 Malwarebytes를 사용하고 있습니다. 종료 후 VisualStudio 디버깅이 훨씬 빨라집니다. 디버그 시작은 15 초 이전이었는데 이제는 2 초가되었습니다.) 감사합니다!
BlueDev

5

필자의 경우 디버그 기호 "Automatically load symbol for" 옵션을 "All modules"에서 "Only specified modules"로 변경하면 문제가 해결되었습니다. 이 옵션은 도구옵션디버깅기호 메뉴에서 변경할 수 있습니다 .


3

다른 원인 플러스 ... 문제를 찾는 방법

나에게 그것은 ShowOtherThreadIpMarkers 옵션 이었습니다 . 값이 1이면 Visual Studio (2010)가 견딜 수 없을 정도로 느려집니다 (디버그 단계 당 3-5 초). 값이 0이면 다시 빠릅니다.

그 옵션은 무엇입니까? 나는 모른다. Visual Studio 사용자 인터페이스를 통해 찾을 수 없습니다. 가능한 모든 디버깅 옵션을 선택 취소했지만 아무것도 작동하지 않았습니다.

그래서 설정 가져 오기 / 내보내기 로 이동하여 이전에 저장 한 이전 설정을 Visual Studio가 다시 빨라질 때까지 거꾸로로드 한 다음 vssettings 파일 등을 비교했습니다.

중단 점에서 중지 된 디버그 모드에있는 동안 설정을로드하면 즉시 적용된다는 점에 주목하고 싶습니다. 디버거를 중지하고 다시 시작할 필요가 없습니다.


+1 감사합니다. 이것은 VS2015의 C # 웹 앱에서도 내 문제였습니다. 디버깅하는 동안 툴바에서 "Show Threads in Source"옵션을 비활성화했는데 문제가 해결되었습니다. 도구 모음에서 옵션을 사용할 수없는 경우 스레드 창에서 스레드를 마우스 오른쪽 단추로 클릭하여 찾을 수 있습니다.
Groo

2

Travis가 링크 한 ScottGu의 블로그에서 : "최근에 들었던 또 다른 성능 문제는 Google 툴바 추가 기능을 사용하는 사람들이보고 한 문제입니다. 어떤 이유로 Visual을 첨부 할 때 시간이 오래 지연 될 수 있습니다. 브라우저에 대한 Studio 디버거입니다. 웹 애플리케이션을로드하는 데 오랜 지연이 있고 Google 툴바 (또는 기타 툴바)가 설치되어있는 경우이를 제거하여 문제의 원인인지 확인하는 것이 좋습니다. "


Google 툴바가 설치되어 있습니까? 아니오라고 말하는 것조차이 질문의 미래 독자들에게 도움이됩니다.
Cat Zimmermann

IE를 열 었는데 도구 모음이 표시되지 않습니다. 도구 모음이 설치되어 있지 않고 Visual Studio에 영향을주지 않음을 의미합니까? :-)
George2

2
와. 나는 그것이 아무 의미하지 생각하지만, 난 그냥 제거하고 내 컴퓨터가 사용 가능한 모드로 돌아
orellabac

1
비난받는 또 다른 플러그인은 LastPass입니다. 이것은 IE의 문제 일 뿐입니 까 아니면 모든 브라우저의 플러그인이 영향을 미칠 수 있습니까?
Denise Skidmore 2014

1
@DeniseSkidmore 당신은 놀랍습니다, 나는 두 번 이상 찬성 할 수 있기를 바랍니다. 이 모든 다른 솔루션과 아무것도 도움이되지 않았습니다 ... 그런 다음 귀하의 의견을 읽고 LastPass IE 추가 기능을 비활성화했으며 갑자기 다시 빠릅니다. 추가 기능을 다시 활성화하여 이것이 문제임을 확인했으며 속도가 느려졌습니다. 감사합니다!!!!
Lews Therin 2017 년

2

디버거에서 실행하는 것은 디버깅하지 않고 실행하는 것보다 약 10 배 느 렸습니다.

여기에 제안 된 모든 솔루션을 시도한 후 모든 디버거 설정을 검토하고 활성화 / 비활성화하여 차이가 있는지 확인했습니다.

저에게는 디버그 설정에서 모듈로드시 JIT 최적화 억제 를 비활성화 하면 상황이 크게 개선 된 것으로 나타났습니다 .


1

더 이상 존재하지 않는 서버에 대한 부실 네트워크 매핑이 없는지 확인하십시오 (네트워크 시간 초과로 인해 사용자가 죽을 수 있음). 또는 프로세스 모니터 와 같은 것을 사용 하여 네트워크 (또는 기타 파일 오류)가 오랫동안 차단되고 있는지 확인하십시오.


Process Monitor는 멋진 도구입니다! :-)하지만 프로세스 모니터의 어떤 옵션을 사용하여 "네트워크 (또는 기타 파일 오류)가 오랫동안 차단되는 것처럼 보이는 경우"를 확인할 수 있습니까?
George2

파일을 열려고 할 때 오류나 작업에 걸리는 시간 등을 찾습니다 (옵션 / 열 선택 ...에서 선택할 수있는 '기간'과 같이 보이지 않을 수있는 데이터 항목이 있음을 잊지 마십시오.) . 필터와 하이라이트를 유리하게 사용하십시오.
Michael Burr

안녕하세요, Michael Burr 님, Process Monitor에서 VSTS 프로세스 자체를 모니터링하거나 컴퓨터의 모든 프로세스를 모니터링해야합니까?
George2

확실히 VSTS (devenv.exe)로 시작하지 않으면 거의 확실히 유용하지 않은 정보가 넘쳐날 것입니다.
Michael Burr

1
"Process Explorer"가 아니라 "Process Monitor"를 사용하는 것이 좋습니다. technet.microsoft.com/en-us/sysinternals/bb896645.aspx를 참조 하십시오 . 2 개의 유틸리티는 다른 기능을 가지고 있습니다. Procmon은 파일 및 레지스트리 작업을 추적합니다. Procexp는 편리한 유틸리티이지만 이러한 유형의 추적을 제공하지 않습니다.
Michael Burr

1

Windows DLL 파일 용 기호를 다운로드하기 위해 symbolsServer를 사용하고 있습니까?

그렇다면 시간이 걸릴 수 있으므로 비활성화하지만 기본 콘솔 응용 프로그램에서 긴 지연이 발생할 것으로 예상하지 않습니다.

메뉴 도구옵션디버깅기호 .


도구> 옵션> 디버깅> 기호에서 내용이 비어 있습니다. 다른 아이디어가 있습니까?
George2

1

나는 이것이 오래된 주제라는 것을 알고 있지만 그만한 가치는 ...

별도의 Internet Explorer 창을 오랫동안 열어두면 디버깅을 시작하는 데 최대 1 분이 걸릴 수 있다는 것을 발견했습니다. 모든 Internet Explorer 창을 닫으면 즉시 디버깅이 시작됩니다.


1

제 경우에는 Google 툴바로 인해 디버깅 속도가 느려졌습니다.

gplus_notifications_gadget.html은 계속해서 디버거를 오버로드했습니다. 정기적으로 사용하는 Google 툴바를 유지하고 싶었 기 때문에 G + 알림 버튼 (프로필 버튼 옆의 작은 버튼)을 비활성화했습니다. 이제 행복합니다.


1

Visual Studio 2010에서 동일한 문제가 발생했습니다. 코드를 입력하는 데 3 ~ 10 초 정도가 느 렸습니다. 그러나 위의 설정 수정 중 어느 것도 트릭을 수행하지 못했습니다.

결국 위의 모든 포스트 문제에서 작동하는 궁극적 인 솔루션을 찾았습니다. 여기에 설명 된대로 모든 설정을 재설정합니다 (기본적으로 메뉴 도구설정 가져 오기 및 내보내기 , 모든 설정 재설정 , 기존 설정을 파일에 저장 ( 복원을 위해 )).

먼저 설정의 특정 부분을 저장할 수 있습니다. 예를 들어, 먼저 내 색상 테마 (Solarized 유사)를 저장 한 다음 전역 재설정 후 복원했습니다.


1

저에게있어서 성능을 죽이는 설정 (Windows 8은 마우스 움직임을 제외하고 중단됨)은 메뉴 옵션디버깅일반 에서 "한 프로세스가 중단되면 모든 프로세스 중단"선택 취소하는 것 입니다.


1

느린 Visual Studio 디버깅 환경의 또 하나의 원인 ...

오래 전에 나는 FusionLog어셈블리 바인딩 문제의 원인을 확인할 수있었습니다.

사용 후에는 비활성화하십시오. 왜? 활성화 된 동안 디스크에 많은 로깅 데이터를 기록하기 때문입니다.

다음은 FusionLogWindows 레지스트리 ( regedit.exe) 의 키입니다 .

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Fusion

변경 ForceLog, LogImmersiveLogResourseBindings1의 값을 0 (사용 안 함)로 (활성화).


그것은 나에게 일어난 일이었습니다. 당신은 또한 비활성화 퓨전 로그인 그것의 GUI를 통해 : hanselman.com/blog/...
데니스 스키드 모어

Process Monitor를 실행할 때 이것이 문제인지 확인할 수 있으며 Fusion Log 파일에 대한 모든 액세스를 볼 수 있습니다.
데니스 스키드 모어

0

나도이 문제가 있었지만 내 경우에는 중단 점과 관련이 없습니다. 작업 창에 추가 한 코드 바로 가기입니다.

http://www.customsoftwareframeworks.com/blog/longwaittimetoinsertoraddalineoftextbuginvisualstudio--tasklistwindow--only whenaddingandremovelines

나는 당신이 이와 같은 문제를 볼 수있는 다른 방법이있을 것이라고 확신하지만, 어딘가에이 문제를 일으킨 버그가 있습니다 ... 내 옵션을 모두 삭제하면이 문제가 해결되었을 것입니다. 그러나 그것은 제가 원하지 않는 것입니다. 하다. 그래서 나는 그것을 디버깅하고 내 블로그에 썼습니다 ... 당신의 문제는 내 것 같습니다.


링크가 끊어졌습니다. "찾고있는 리소스가 제거되었거나 이름이 변경되었거나 일시적으로 사용할 수 없습니다."
Peter Mortensen

0

나를 위해 일한 것은 조건부 중단 점이 없는지 확인하는 것입니다. 그 외에는 Visual Studio를 다시 시작하고 한 번에 하나의 Visual Studio 인스턴스 만 열어서 느린 디버깅을 성공적으로 수정했습니다.


0

나는 비슷한 문제가 있었고 다른 어떤 지침도 도움이되지 않는 것 같았습니다. 나는 아무 소용이 없도록 재부팅했다. 모든 중단 점을 제거하고 .suo 파일을 삭제하고 기호가 외부 소스에서로드되지 않는지 확인하고 사용할 수없는 응용 프로그램에 경로가 없는지 확인했습니다.

그런 다음 용액을 청소하려고 생각했습니다. 출력 창에서 정리할 때 C # IntelliSense가 문제를보고했음을 알았습니다.

'{B0C3592F-F0D1-4B79-BE20-3AD610B07C23}'에서 메타 데이터를 읽는 중에 문제가 발생했습니다 ( '지정된 파일을 찾을 수 없습니다.'). 솔루션이 다시로드 될 때까지 IntelliSense가 제대로 작동하지 않을 수 있습니다.

이 경우 실제로 오류 메시지를 발견하면 해결 방법을 정확하게 알려줍니다. (오류 텍스트는 훌륭하고 검색 가능성은 좋지 않습니다!) 솔루션의 프로젝트를 언로드 한 다음 다시로드했습니다. 그런 다음 클린 솔루션 을 성공적으로 실행할 수있었습니다 . 작동했고 디버거도 작동했습니다.


0

"Autos"창을 닫으면 Visual Studio 2008에서 큰 네이티브 C ++ 솔루션에 대한 디버깅이 향상되었습니다.

숨겨도 작동하지 않습니다. 닫아야합니다.


0

다른 의견과 답변에서 언급했듯이 동일한 속도 저하와 네트워크 연결 끊김이 문제를 해결했습니다 (물론 이상적인 수정은 아닙니다).

필자의 경우이 간단한 변경으로 솔루션이 수정되었습니다. 디버그 탭의 프로젝트 속성에서 "Visual Studio 호스팅 프로세스 활성화"를 비활성화했습니다 (Visual Studio 2010 실행 중).


-9

더 많은 메모리와 더 빠른 HD를 얻으십시오. 자세한 내용은 여기에 있습니다 .


1
제 하드웨어가 4G 메모리 + 2 CPU (2.33G)이기 때문에 H / W 문제라고 생각하지 않습니다. BTW : 일주일 전에는이 문제가 발생하지 않았으므로 구성 문제가 있어야한다고 생각합니까?
George2

2
+1 유용한 조언, 사람들이이 항목에 대해 투표한다는 것을 믿을 수 없습니다. .suo 파일을 삭제하면 10 배 더 도움이됩니다.
Andomar

1
OP는 사양이 무엇인지 말하지 않았습니다. 저에게 조언을했다면 32Gb 램보다 크고 이미 빠른 솔리드 스테이트보다 더 빨리 가져 오라고 조언 할 것입니다.
Valamas
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.