.NET 메모리 할당 및 수명 데이터 수집Collect .NET memory allocation and lifetime data

Visual Studio 프로파일링 도구는 .NET 메모리 할당 및 개체 수명 데이터의 수집을 지원하므로, 응용 프로그램에서 메모리 관련 성능 문제를 감지하는 데 도움이 됩니다.Visual Studio Profiling Tools support the collection of .NET memory allocation and object lifetime data, which helps you detect memory-related performance issues in your application.

  • .NET 메모리 할당에 대한 데이터에는 할당된 .NET Framework 메모리 개체의 크기와 수가 포함됩니다.Data about .NET memory allocation includes the size and number of .NET Framework memory objects that were allocated.

  • 개체 수명 데이터에는 3개의 가비지 수집 세대에서 회수된 .NET Framework 메모리 개체의 크기와 수가 포함됩니다.Object lifetime data includes the size and number of .NET Framework memory objects that were reclaimed in the three garbage collection generations.

참고

Windows 8 및 Windows Server 2012의 강화된 보안 기능을 위해 Visual Studio 프로파일러가 이러한 플랫폼에서 데이터를 수집하는 방법을 상당히 변경해야 했습니다.Enhanced security features in Windows 8 and Windows Server 2012 required significant changes in the way the Visual Studio profiler collects data on these platforms. 또한 UWP 앱에는 새로운 수집 기술도 필요합니다.UWP apps also require new collection techniques. Windows 8 및 Windows Server 2012 응용 프로그램의 성능 도구를 참조하세요.See Performance Tools on Windows 8 and Windows Server 2012 applications.

샘플링 또는 계측 프로파일링 방법을 사용하여 데이터를 수집할 수 있습니다.You can collect data by using either the sampling or the instrumentation profiling method.

  • 샘플링 방법을 사용하면 프로파일러에서 시작되었거나 연결된 프로세스에 의해 생성되는 모든 .NET 메모리 할당 및 개체를 추적합니다.When you use the sampling method, the profiler tracks all .NET memory allocations and objects that are generated by the process that was started or attached to.

  • 계측 방법을 사용하면 프로파일러에서 계측된 모듈에 의해 생성되는 .NET 메모리 할당 및 개체만 추적합니다.When you use the instrumentation method, the profiler tracks only those .NET memory allocations and objects that are generated by the instrumented modules.

중요

샘플링 방법을 사용하여 .NET 메모리 데이터(할당, 개체 수명 또는 둘 다)를 수집하는 경우 모든 사용자 지정 샘플링 이벤트가 무시되며 적절한 메모리 할당 이벤트가 데이터를 수집하는 데 사용됩니다.When you are collecting .NET memory data (allocations, object lifetimes, or both) by using the sampling method, all user-specified sampling events are ignored, and the appropriate memory allocation events are used to collect data.

.NET 메모리 할당의 프로파일링을 사용하도록 설정하면 할당 뷰도 사용하도록 설정할 수 있습니다.If you enable the profiling of.NET memory allocation, you also enable the Allocation View. .NET 수명 데이터의 프로파일링을 사용하도록 설정하면 개체 수명 뷰도 사용하도록 설정할 수 있습니다.If you enable the profiling of .NET lifetime data, you also enable the Objects Lifetime View. 자세한 내용은 할당 뷰개체 수명 뷰를 참조하세요.For more information, see Allocations View and Object Lifetime View.

프로파일링 도구의 명령줄 도구를 사용하여 .NET 메모리 데이터를 수집하는 방법에 대한 자세한 내용은 명령줄에서 프로파일링 방법 사용에서 .NET 메모리 방법을 사용하여 메모리 할당 및 개체 수명 데이터 수집을 참조하세요.For information about how to collect .NET memory data by using the Profiling Tools command-line tools, see Using .NET Memory Methods to Collect Memory Allocation and Object Lifetime Data in Using Profiling Methods From the Command Line.

.NET 메모리 데이터를 수집하려면To collect .NET memory data

  1. 성능 탐색기에서 성능 세션을 마우스 오른쪽 단추로 클릭한 다음 속성을 클릭합니다.In Performance Explorer, right-click the performance session, and then click Properties.

  2. ‘성능 세션’ 속성 페이지 대화 상자에서 일반 탭을 클릭하고, .NET 개체 할당 정보 수집 확인란을 선택합니다.On the Performance Session Property Pages dialog box, click the General tab, and select the Collect .NET object allocation information check box.

  3. .NET 개체 수명 데이터를 수집하려면 추가적으로 .NET 개체 수명 정보 수집 확인란을 선택합니다.To collect .NET object lifetime data, select the Also collect .NET object lifetime information check box.

일반 작업Common tasks

‘성능 세션속성 페이지’ 대화 상자에서 추가 옵션을 지정할 수 있습니다.You can specify additional options in the *Performance SessionProperty Pages* dialog box of the performance session. 이 대화 상자를 열려면To open this dialog box:

  • 성능 탐색기에서 성능 세션 이름을 마우스 오른쪽 단추로 클릭한 다음 속성을 클릭합니다.In Performance Explorer, right-click the performance session name, and then click Properties.

다음 표의 작업은 .NET 메모리 데이터를 수집할 때 ‘성능 세션속성 페이지’ 대화 상자에 지정할 수 있는 옵션을 설명합니다.The tasks in the following table describe options that you can specify in the *Performance SessionProperty Pages* dialog box when you collect .NET memory data.

작업Task 관련 내용Related Content
일반 페이지에서 생성된 프로파일링 데이터(.vsp) 파일에 대한 이름 지정 세부 정보를 지정합니다.On the General page, specify naming details for the generated profiling data (.vsp) file. - .NET 메모리 할당 및 수명 데이터 수집- Collect .NET memory allocation and lifetime data
- 방법: 성능 데이터 파일 이름 옵션 설정- How to: Set performance data file name options
시작 페이지에서 코드 솔루션에 .여러 .exe 프로젝트가 있는 경우 시작할 응용 프로그램을 선택합니다.On the Launch page, choose the application to start if you have multiple .exe projects in your code solution. - 계층 상호 작용 데이터 수집- Collect tier interaction data
계층 상호 작용 페이지에서 프로파일링 실행에 ADO.NET 호출 데이터를 추가합니다.On the Tier Interaction page, add ADO.NET call data to the profiling run. - 계층 상호 작용 데이터 수집- Collect tier interaction data
Windows 이벤트 페이지에서 샘플링 데이터로 수집할 ETW(Windows용 이벤트 추적) 이벤트를 하나 이상 지정합니다.On the Windows Events page, specify one or more Event Tracing for Windows (ETW) events to collect with the sampling data. - 방법: ETW(Windows용 이벤트 추적) 데이터 수집- How to: Collect Event Tracing for Windows (ETW) data
Windows 카운터 페이지에서 프로파일링 데이터에 표시로 추가할 운영 체제 성능 카운터를 하나 이상 지정합니다.On the Windows Counters page, specify one or more operating system performance counters to add to the profiling data as marks. - 방법: Windows 카운터 데이터 수집- How to: Collect Windows counter data
고급 페이지에서, 응용 프로그램 모듈이 여러 버전을 사용하는 경우 프로파일링할 .NET Framework 런타임의 버전을 지정합니다.On the Advanced page, specify the version of the .NET Framework runtime to profile if your application modules use multiple versions. 기본적으로 첫 번째 로드된 버전이 프로파일링됩니다.By default, the first version loaded is profiled. - 방법: .NET Framework 런타임 지정- How to: Specify the .NET Framework runtime

계측 작업Instrumentation tasks

다음 표의 작업은 계측 방법을 사용하여 프로파일링과 관련된 속성 페이지 대화 상자의 옵션입니다.The tasks in the following table are options in the Property Pages dialog box that are specific to profiling with the instrumentation method.

작업Task 관련 내용Related Content
이진 페이지에서 모듈의 계측된 복사본에 대한 위치를 지정합니다.On the Binaries page, specify a location for the instrumented copies of the modules. 기본적으로 원래 이진 파일이 백업 폴더로 이동됩니다.By default, the original binaries are moved to a backup folder. - 방법: 계측된 이진 파일 재배치- How to: Relocate Instrumented Binaries
계측 페이지에서 작은 함수가 프로파일링되지 않도록 제외하여 프로파일링 오버헤드를 줄이고, JavaScript 코드를 ASP.NET 웹 페이지에 프로파일링하고, 계측 프로세스 전후에 명령 프롬프트에서 실행할 명령을 지정합니다.On the Instrumentation page, exclude small functions from profiling to reduce the profiling overhead, profile JavaScript code in ASP.NET Web pages, and specify commands to run at a command prompt before and after the instrumentation process. - 방법: 계측에서 간단한 함수 제외 또는 포함- How to: Exclude or include short functions from instrumentation
- 방법: 웹 페이지에서 JavaScript 코드 프로파일링- How to: Profile JavaScript Code in Web Pages
- 방법: 계측 전 명령 및 계측 후 명령 지정- How to: Specify Pre- and Post-Instrument Commands
CPU 카운터 페이지에서 프로파일링 데이터에 추가할 프로세서 성능 카운터를 하나 이상 지정합니다.On the CPU Counters page, specify one or more processor performance counters to add to the profiling data. - 방법: CPU 카운터 데이터 수집- How to: Collect CPU Counter Data
고급 페이지에서 특정 함수를 포함하거나 제외하는 옵션 등 원하는 추가 VSInstr.exe 옵션을 지정합니다.On the Advanced page, specify any additional VSInstr.exe options that you want, such as options to include or exclude specific functions. VSInstr 옵션에 대한 자세한 내용은 VSInstr을 참조하세요.For more information about VSInstr options, see VSInstr - 방법: 추가 계측 옵션 지정- How to: Specify additional instrumentation options
- 방법: 특정 함수로 계측 제한- How to: Limit instrumentation to specific functions

참고 항목See also

성능 세션 구성Configure performance sessions
방법: 수집 방법 선택How to: Choose collection methods
성능 세션 속성Performance session properties