디버거를 사용하거나 사용하지 않고 프로파일링 도구 실행Running Profiling Tools With or Without the Debugger

Visual Studio에서는 이제 성능 도구를 선택할 수 있습니다. 그 중 일부(예: CPU 사용메모리 사용)는 디버거를 사용하거나 사용하지 않고 실행될 수 있습니다.Visual Studio now offers you a choice of performance tools, some of which (for example, CPU Usage and Memory Usage) can be run with or without the debugger. 디버거가 없는 성능 도구는 릴리스 구성에서 실행될 수 있으며, 디버거 통합 도구는 디버그 구성에서 실행될 수 있습니다.Non-debugger performance tools are intended to run on Release configurations, while debugger-integrated tools are intended to run on Debug configurations.

디버거를 사용하여 도구를 실행할지 여부 선택Should I run the tool with or without the debugger?

디버거 통합 성능 도구에서는 디버거가 없는 도구로 수행할 수 없는 중단점 설정, 변수 값 검사 등의 많은 작업을 수행할 수 있습니다.Debugger-integrated performance tools let you do a lot of things non-debugger tools cannot, for example set breakpoints and inspect variable values. 디버거가 없는 도구는 릴리스된 응용 프로그램의 사용자가 볼 수 있는 것에 가까운 환경을 제공합니다.Non-debugger tools give you an experience that is closer to what users of the released application will see.

목적에 적합한 도구의 종류를 결정하는 데 도움이 될 수 있는 몇 가지 질문은 다음과 같습니다.Here are some questions that can help you decide which kind of tool is right for your purposes:

  1. 응용 프로그램이 개발되는 동안 문제가 발견되었나요? 아니면 릴리스 버전에서 문제가 발견되었나요?Was the issue found while the application was being developed, or was it found in a released version?

    처리하고 있는 문제가 개발 중에 발견된 경우 릴리스 빌드에서 성능 도구를 실행할 필요가 없을 수도 있습니다.If the issue you are dealing with was found during development, you probably don't need to run the performance tools in a Release build. 문제가 릴리스 버전에서 발견된 경우 릴리스 구성에서 문제를 재현한 다음 디버거가 추가 조사에 도움이 될지 여부를 결정해야 합니다.If it was found in a Release version, you should reproduce the issue with a Release configuration, and then decide whether or not the debugger would help for further investigation.

  2. 문제가 CPU를 많이 사용하는 처리 때문에 발생하나요?Is the issue caused by CPU-intensive processing?

    많은 문제의 원인이 파일 I/O 또는 네트워크 응답 성능과 같은 외부 성능 문제이므로 디버거를 사용하거나 사용하지 않고 성능 도구를 실행하는지에 따라 큰 차이가 생기지는 않습니다.Many problems are due to external performance issues such as file I/O or network responsiveness, so it shouldn't make much difference whether you run the performance tools with or without the debugger. 문제의 원인이 CPU를 많이 사용하는 호출인 경우 릴리스 구성과 디버그 구성 간의 차이는 상당할 수 있으며 디버거 통합 도구를 사용하기 전에 릴리스 빌드에 문제가 있는지 확인해야 할 수 있습니다.If your issue is due to CPU-intensive calls, the difference between Release and Debug configurations may be considerable, and you should probably check to see if the issue exists in the Release build before using the debugger-integrated tools

  3. 성능을 정확히 측정해야 하나요, 아니면 대략적인 수치라도 괜찮은가요?Do you need to measure performance precisely, or is an approximate number acceptable?

    디버그 빌드에는 함수 호출 및 상수 인라인 처리, 사용되지 않는 코드 경로 정리 및 디버거가 사용할 수 없는 방식으로 변수 저장과 같이 릴리스 빌드에서 제공하는 특정 최적화가 없습니다.Debug builds lack certain optimizations that Release builds provide, for example inlining function calls and constants, pruning unused code paths, and storing variables in ways that can't be used by the debugger. 디버거 자체가 디버깅에 필요한 특정 작업(예: 예외 및 모듈 로드 이벤트 가로채기)을 수행하기 때문에 성능 시간을 변경합니다.The debugger itself changes performance times because it performs certain operations that are necessary for debugging (for example, intercepting exception and module load events). 디버거 통합 도구의 성능 수치는 디버거 최적화를 고려하지 않기 때문에 정확도가 낮습니다. 하지만 디버깅하는 동안 수행되는 다른 상대 측정값과 비교하면 여전히 유용할 수 있습니다.Performance numbers in the debugger-integrated tools are less accurate as they do not account for debugger optimizations, but still can be useful when compared with other relative measurements taken while debugging. 디버거가 없는 도구를 사용한 릴리스 구성의 성능 수치는 훨씬 더 정확합니다.Performance numbers for Release configurations with the non-debugger tools are much more precise.

디버깅하는 동안 프로파일링 데이터 수집Collect profiling data while debugging

다음 섹션에서는 로컬 디버그에 대해 설명합니다.The following section deals with debugging locally. 장치에서의 디버그 또는 원격 디버그에 대해서는 뒤의 섹션에서 확인할 수 있습니다.You can find out about debugging on a device or remote debugging, in later sections.

  1. 디버그할 프로젝트를 연 다음 디버그 / 디버깅 시작 을 클릭합니다(또는 도구 모음에서 시작 을 클릭하거나 F5사용).Open the project you want to debug, then click Debug / Start Debugging (or Start on the toolbar, or F5).

  2. 끄지 않았다면 진단 도구 가 자동으로 나타납니다.The Diagnostic Tools window appears automatically unless you have turned it off. 창을 다시 표시하려면 디버그/Windows/진단 도구 표시를 클릭합니다.To bring up the window again, click Debug / Windows / Show Diagnostic Tools.

  3. 데이터를 수집할 시나리오를 실행합니다.Run the scenarios that you want to collect data for.

    세션을 실행하는 동안 이벤트, 프로세스 메모리 및 CPU 사용률에 대한 정보를 볼 수 있습니다.While you are running the session, you can see information about events, process memory, and CPU utilization.

    다음 그림에서는 Visual Studio 2015 업데이트 1의 진단 도구 창을 보여 줍니다.The following graphic shows the Diagnostic Tools window in Visual Studio 2015 Update 1:

    DiagnosticTools-Update1DiagnosticTools-Update1

  4. 도구 모음의 도구 선택 설정을 사용하여 메모리 사용 또는 CPU 사용 중 하나를 표시하거나 둘 다 표시하도록 선택할 수 있습니다.You can choose whether to see Memory Usage or CPU Usage (or both) with the Select Tools setting on the toolbar. Visual Studio Enterprise를 실행 중인 경우 도구/옵션/IntelliTrace에서 IntelliTrace를 사용하거나 사용하지 않도록 설정할 수 있습니다.If you are running Visual Studio Enterprise, you can enable or disable IntelliTrace in Tools / Options / IntelliTrace.

  5. 디버그를 중지하면 진단 세션이 종료됩니다.The diagnostic session ends when you stop debugging.

    Visual Studio 2015 업데이트 1에서 진단 도구 창을 사용하면 관심 있는 이벤트에 보다 쉽게 집중할 수 있습니다.In Visual Studio 2015 Update 1, the Diagnostic Tools window makes it easier for you focus on the events you are interested in. 이제는 이벤트 이름이 제스처, 프로그램 출력, 중단점, 파일 등의 범주 접두사와 함께 표시됩니다. 그러므로 목록에서 지정된 범주를 빠르게 찾거나 확인할 필요가 없는 범주를 건너뛸 수 있습니다.The event names are now shown with category prefixes (Gesture, Program Output, Breakpoint, File, etc.) so you can quickly scan the list for a given category or skip the categories you don't care about.

    이제 이벤트 목록의 모든 위치에서 특정 문자열을 찾을 수 있도록 창에 검색 상자가 있습니다.The window now has a search box so that you can find a specific string anywhere in the event list. 예를 들어 다음 그림에서는 4개의 이벤트와 일치한 "설치" 문자열에 대한 검색 결과를 보여 줍니다.For example, the following graphic shows the results of a search for the string "install" that matched four events:

    DiagnosticsEventSearchDiagnosticsEventSearch

    창에서 보기 내부 및 외부 이벤트를 필터링할 수도 있습니다.You can also filter events in and out of view in the window. 필터 드롭다운에서 특정 이벤트 범주를 선택하거나 선택 취소할 수 있습니다.In the Filter dropdown, you can check or uncheck specific categories of events:. 범주 이름은 접두사 이름과 동일합니다.The category names are the same as the prefix names.

    DiagnosticEventFilterDiagnosticEventFilter

    자세한 내용은 진단 도구 창의 이벤트 탭 검색 및 필터링을 참조하세요.For more information, see Searching and filtering the Events tab of the Diagnostic Tools window.

디버깅을 사용하지 않고 프로파일링 데이터 수집Collect profiling data without debugging

일부 프로파일링 도구를 실행하려면 관리자 권한이 필요합니다.Some profiling tools require administrator privileges to run. 관리자 권한으로 Visual Studio를 시작할 수도 있고, 진단 세션을 시작할 때 관리자 권한으로 도구를 실행하도록 선택할 수 있습니다.You can start Visual Studio as an administrator, or you can choose to run the tools as an administrator when you start the diagnostic session.

  1. Visual Studio에서 프로젝트를 엽니다.Open the project in Visual Studio.

  2. 디버그 메뉴에서 성능 프로파일러...를 선택합니다(바로 가기 키: Alt+F2).On the Debug menu, choose Performance Profiler... (Shortcut key: Alt + F2).

  3. 진단 시작 페이지에서, 세션에서 실행할 하나 이상의 도구를 선택합니다.On the diagnostic launch page, choose one or more tools to run in the session. 프로젝트 형식, 운영 체제 및 프로그래밍 언어에 적용되는 도구만 표시됩니다.Only the tools that are applicable to the project type, operating system, and programming language are displayed. 진단 도구를 선택하면 같은 진단 세션에서 실행할 수 없는 도구 선택을 사용할 수 없게 설정됩니다.When you choose a diagnostic tool, the selections for tools that cannot be run in the same diagnostic session are disabled. C# Windows 유니버설 앱의 경우 선택 항목이 다음과 같이 표시될 수 있습니다.Here's how your choices might look for a C# Windows Universal app:

    진단 도구 선택Select the diagnostic tools

  4. 진단 세션을 시작하려면 시작을 클릭합니다.To start the diagnostic session, click Start.

  5. 데이터를 수집할 시나리오를 실행합니다.Run the scenarios for which you want to collect data.

    세션을 실행하는 동안 일부 도구는 진단 도구 시작 페이지에 실시간 데이터의 그래프를 표시합니다.While you are running the session, some tools display graphs of real-time data on the diagnostic tools launch page.

    성능 및 진단 페이지에서 데이터 수집Collect data on the Performance and Diagnostic pag

  6. 진단 세션을 종료하려면 컬렉션 중지를 클릭합니다.To end the diagnostic session, click Stop collection.

    진단 세션에서 데이터 수집을 중지하면 데이터가 분석되고 보고서가 진단 페이지에 표시됩니다.When you stop collecting data in a diagnostic session, the data is analyzed and the report is displayed in the Diagnostic page.

    진단 도구 시작 페이지의 최근에 열어 본 목록에서 저장된 진단 세션 파일을 열 수도 있습니다.You can also open saved .diagnostic session files from the recently opened list on the diagnostic tools launch page.

    저장된 진단 세션 파일 열기Open a saved diagnosis session file

프로파일링 보고서The profiling report

진단 도구 보고서Diagnostic tools report

1단계Step 1 타임라인에는 프로파일링 세션 길이, 응용 프로그램 수명 주기 시작 이벤트 및 사용자 표시가 표시됩니다.The timeline shows the length of the profiling session, app lifecycle activation events, and user marks.
2단계Step 2 파란색 막대를 끌어 타임라인의 부분의 선택하여 보고서를 타임라인의 일부분으로 제한할 수 있습니다.You can restrict the report to a part of the timeline by dragging the blue bars to select a region of the timeline.
3단계Step 3 도구는 하나 이상의 마스터 그래프를 표시합니다.A tool displays one or more master graphs. 진단 세션이 여러 가지 도구로 만들어질 경우 모든 마스터 그래프가 표시됩니다.If your diagnostic session is created with multiple tools, all of the master graphs are displayed.
4단계Step 4 개별 그래프를 축소 또는 확장할 수 있습니다.You can collapse and expand the individual graphs.
5단계Step 5 데이터에 여러 도구의 정보가 포함되어 있으면 도구에 대한 세부 정보는 탭 아래에 수집됩니다.When your data includes information from multiple tools, the details for the tool is collected under tabs.
6단계Step 6 도구에는 세부 정보 뷰가 하나 이상 있을 수 있습니다.A tool can have one or more detail views. 뷰는 타임라인의 선택된 부분으로 필터링됩니다.The view is filtered by the selected region of the timeline.

다른 장치로 분석 대상 설정Setting the analysis target to another device

Visual Studio 프로젝트에서 앱을 시작할 수 있는 것 외에, 다른 대상에서 진단 세션을 실행할 수도 있습니다.Besides starting your app from the Visual Studio project, you can also run diagnostic sessions on alternative targets. 예를 들어 Windows 앱 스토어에서 설치된 앱 버전의 성능 문제를 진단할 수 있습니다.For example, you might want to diagnose performance issues on a version of your app that was installed from the Windows App Store.

진단 도구 분석 대상 선택Choose diagnostic tools analysis target

장치에 이미 설치된 앱을 시작하거나 이미 실행 중인 일부 앱에 진단 도구를 연결할 수 있습니다.You can start apps that are already installed on a device, or you can attach the diagnostic tools to some apps that are already running. 실행 중인 응용 프로그램 또는 설치된 응용 프로그램을 선택하면 지정된 배포 대상에서 앱을 검색하는 목록에서 앱을 선택하는 것입니다.When you choose Running App or Installed App, you select the app from a list that discovers the apps on the specified deployment target.

진단을 위해 실행 중이거나 설치된 응용 프로그램 선택Choose a running or installed app for diagnosis

Internet Explorer를 선택하면 URL을 지정하고 휴대폰 배포 대상을 변경할 수 있습니다.When you choose Internet Explorer, you specify the URL and you can change the phone deployment target.

Internet Explorer에 표시할 URL 지정Specify the url to display in Internet Explorer

Remote DebuggingRemote Debugging

원격 PC 또는 태블릿에서 진단 세션을 실행하려면 원격 대상에 Visual Studio 원격 도구가 설치되어 있고 실행 중이어야 합니다.Running a diagnostic session on a remote PC or tablet requires that the Visual Studio Remote Tools be installed and running on the remote target. 데스크톱 앱의 경우 원격 디버깅을 참조하세요.For desktop apps, see Remote Debugging. Windows 유니버설 앱의 경우 원격 컴퓨터에서 UWP 앱 실행을 참조하세요.For Windows Universal apps, see Run UWP apps on a remote machine.

진단 개발팀의 블로그 게시물 및 MSDN 문서Blog posts and MSDN articles from the Diagnostics development team

MSDN Magazine: Visual Studio 2015에서 디버그하는 동안 성능 분석MSDN Magazine: Analyze Performance While Debugging in Visual Studio 2015

MSDN Magazine: IntelliTrace를 사용하여 문제를 더 빠르게 진단MSDN Magazine: Use IntelliTrace to Diagnose Issues Faster

블로그 게시물: Visual Studio 2015의 메모리 사용량 도구로 이벤트 처리기 누수 진단Blog post: Diagnosing Event Handler Leaks with the Memory Usage Tool in Visual Studio 2015

비디오: Microsoft Visual Studio Ultimate 2015의 IntelliTrace를 사용하여 기록 디버그Video: Historical Debugging with IntelliTrace in Microsoft Visual Studio Ultimate 2015

비디오: Visual Studio 2015를 사용하여 성능 문제 디버그Video: Debugging Performance Issues Using Visual Studio 2015

성능 팁: Visual Studio를 사용하여 디버그하는 동안 성능 정보 요약PerfTips: Performance Information at-a-glance while Debugging with Visual Studio

Visual Studio 2015의 진단 도구 디버거 창Diagnostic Tools debugger window in Visual Studio 2015

Visual Studio Enterprise 2015의 IntelliTraceIntelliTrace in Visual Studio Enterprise 2015