디버거를 사용하거나 사용하지 않고 프로파일링 도구 실행(C#, Visual Basic, C++, F#)
Visual Studio는 성능 측정 및 프로파일링 도구 중에서 선택할 수 있습니다. CPU 사용량 및 메모리 사용량과 같은 일부 도구는 디버거를 사용하거나 사용하지 않고 릴리스 또는 디버그 빌드 구성으로 실행할 수 있습니다. 진단 도구 창에 표시되는 도구는 디버그 세션 중에만 실행됩니다. 성능 프로파일러에 표시되는 도구는 디버거 없이 실행되며, 사용자는 중지 후 사후 분석을 위해 데이터를 수집하기로 선택한 다음에 결과를 분석합니다.
참고 항목
Windows 7 이상에서 비-디버거 성능 도구를 사용할 수 있습니다. 디버거 통합 프로파일링 도구를 실행하려면 Windows 8 이상이 필요합니다.
비-디버거 성능 프로파일러 및 디버거 통합 진단 도구는 다양한 환경과 정보를 제공합니다. 디버거 통합 도구에서는 변수 값이 표시되고 중단점을 사용할 수 있습니다. 비-디버거 도구를 사용하면 최종 사용자 환경에 더 가까운 결과를 얻을 수 있습니다.
사용할 도구 및 결과를 결정하려면 다음 옵션을 고려하세요.
디버거 통합 도구와 비 디버거 도구
- 파일 I/O 또는 네트워크 응답 문제와 같은 외부 성능 문제는 디버거 또는 비-디버거 도구에서는 크게 다르지 않습니다.
- 디버거 자체는 예외 및 모듈 로드 이벤트 가로채기와 같은 필요한 디버거 작업을 수행하므로 성능 시간을 변경합니다.
- 성능 프로파일러의 릴리스 빌드 성능 번호가 가장 정밀하고 정확합니다. 디버거 통합 도구 결과는 다른 디버깅 관련 측정과 비교하거나 디버거 기능을 사용할 때 가장 유용합니다.
- .NET 개체 할당 도구와 같은 일부 도구는 디버거가 없는 시나리오에만 사용할 수 있습니다.
디버그 빌드와 릴리스 빌드
- CPU를 많이 사용하는 호출로 인해 발생하는 문제의 경우 릴리스 빌드와 디버그 빌드 간에 상당한 성능 차이가 있을 수 있습니다. 릴리스 빌드에 문제가 있는지 확인합니다.
- 디버그 빌드 중에만 문제가 발생하면 비-디버거 도구를 실행할 필요가 없을 것입니다. 릴리스 빌드 문제의 경우 디버거 통합 도구가 제공하는 기능이 문제를 파악하는 데 도움이 되는지 여부를 결정합니다.
- 릴리스 빌드는 함수 호출 및 상수 인라인, 사용되지 않는 코드 경로 정리 및 디버거가 사용할 수 없는 방식으로 변수 저장과 같은 최적화를 제공합니다. 디버거 빌드의 성능 수치는 덜 정확합니다. 디버그 빌드에는 이러한 최적화가 부족하기 때문입니다.
디버깅을 사용하지 않고 프로파일링 데이터 수집
디버깅하지 않고 성능 데이터를 수집하려면 성능 프로파일러 도구를 실행할 수 있습니다.
Visual Studio에서 프로젝트를 열고 솔루션 구성을 릴리스로 설정하고 로컬 Windows 디버거(또는 로컬 머신)를 배포 대상으로 선택합니다.
디버그>성능 프로파일러를 선택하거나 Alt+F2를 누릅니다.
진단 도구 시작 페이지에서 실행할 하나 이상의 도구를 선택합니다. 프로젝트 형식, 운영 체제 및 프로그래밍 언어에 적용되는 도구만 표시됩니다. 모든 도구 표시를 선택하여 이 진단 세션에 사용할 수 없는 도구도 확인하세요.
진단 세션을 시작하려면 시작을 선택합니다.
세션이 실행되는 동안 일부 도구는 진단 도구 페이지에 실시간 데이터 그래프를 표시하며 데이터 수집을 일시 중지하고 다시 시작할 수 있는 옵션이 표시될 수 있습니다.
진단 세션을 종료하려면 컬렉션 중지를 선택합니다.
분석된 데이터는 보고서 페이지에 표시됩니다.
보고서를 저장하고 진단 도구 시작 페이지의 최근 열린 세션 목록에서 열 수 있습니다.
자세한 내용은 다음을 참조하세요.
- CPU 프로파일링을 사용하여 성능 분석
- 메모리 사용량 분석
- .NET 코드의 메모리 사용량 분석
- 계측 데이터 분석
- .NET 비동기 코드 성능 분석
- 데이터베이스 성능 분석
- GPU 사용량 분석
디버깅하는 동안 프로파일링 데이터 수집
디버그>디버깅 시작을 선택하거나 F5를 눌러 Visual Studio에서 디버깅을 시작하면 기본적으로 진단 도구 창이 나타납니다. 수동으로 열려면 디버그>Windows>진단 도구 표시를 선택합니다. 진단 도구 창에는 이벤트, 프로세스 메모리, CPU 사용량 및 .NET 카운터에 대한 정보가 표시됩니다.
디버그>디버깅 시작을 선택하거나 F5를 눌러 Visual Studio에서 디버깅을 시작하면 기본적으로 진단 도구 창이 나타납니다. 수동으로 열려면 디버그>Windows>진단 도구 표시를 선택합니다. 진단 도구에는 이벤트, 프로세스 메모리 및 CPU 사용량에 대한 정보가 표시됩니다.
도구 모음의 설정 아이콘을 사용하여 메모리 사용량, UI 분석 및 CPU 사용량을 볼지 여부를 선택합니다.
설정 드롭다운 목록에서 설정을 선택하여 추가 옵션으로 진단 도구 속성 페이지를 엽니다.
Visual Studio Enterprise를 실행 중인 경우 도구>옵션>IntelliTrace로 이동하여 IntelliTrace를 사용하거나 사용하지 않도록 설정할 수 있습니다.
디버그를 중지하면 진단 세션이 종료됩니다.
참고 항목
다시 시작을 사용하여 시작 페이지를 건너뛰고 Alt+F2 키를 사용하거나 디버깅 > 성능 프로파일러를 클릭하면 이전 설정으로 자동으로 실행됩니다.
자세한 내용은 다음을 참조하세요.
이벤트 탭
디버깅 세션 중에 진단 도구 창의 이벤트 탭에 발생하는 진단 이벤트가 나열됩니다. 범주 접두사 중단점, 파일 및 기타 항목을 사용하면 범주에 대한 목록을 빠르게 검사하거나 관심 없는 범주를 건너뛸 수 있습니다.
필터 드롭다운 목록을 사용하여 특정 범주의 이벤트를 선택하거나 취소하여 보기 안팎으로 이벤트를 필터링합니다.
검색 상자를 사용하여 이벤트 목록에서 특정 문자열을 찾습니다. 다음은 세 개의 이벤트와 일치하는 파일 이름 모델 을 검색한 결과입니다:
검색 상자를 사용하여 이벤트 목록에서 특정 문자열을 찾습니다. 다음은 네 개의 이벤트와 일치하는 문자열 이름에 대한 검색 결과입니다.
자세한 내용은 진단 도구 창의 이벤트 탭 검색 및 필터링을 참조하세요.
명령줄에서 프로파일링 데이터 수집
명령줄에서 성능 데이터를 측정하기 위해 Visual Studio 또는 원격 도구와 함께 제공되는 VSDiagnostics.exe를 사용할 수 있습니다. 이는 Visual Studio가 설치되지 않은 시스템에서 성능 추적을 캡처하거나, 성능 추적 컬렉션을 스크립팅하는 데 유용합니다. 자세한 내용은 명령줄에서 애플리케이션 성능 측정을 참조하세요.