CPU 및 Windows 카운터CPU and Windows Counters

Visual Studio 프로파일러를 사용하면 운영 체제(Windows 카운터)에 의해 생성된 성능 데이터 및 프로세서 단위(CPU 카운터)에 의해 생성된 성능 데이터를 수집할 수 있습니다.The Visual Studio Profiler enables you to collect performance data that was generated by the operating system (Windows counters) and performance data that was generated by the processor unit (CPU counters).

참고

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.

Windows 카운터Windows Counters

Windows 카운터는 운영 체제, 응용 프로그램, 서비스 또는 드라이버의 성능에 대한 정보를 제공하는 Windows 진단 인프라의 일부입니다.Windows counters are part of the Windows diagnostic infrastructure that provides information about the performance of the operating system or an application, a service, or a driver. Windows 카운터는 현재 컴퓨터의 구성에 따라 다르며 다른 컴퓨터에서 사용하지 못할 수 있습니다.Windows counters depend on the configuration of the current computer and might not be available on other computers. Windows 성능 카운터는 프로파일링 데이터 파일에 프로파일링 표시로 수집되므로 보기 및 보고서를 필터링하는 데 사용할 수 있습니다.Windows performance counters are collected in profiling data files as profiling marks, which can then be used to filter views and reports.

CPU 카운터CPU Counters

CPU 카운터는 하드웨어 관련 이벤트의 수를 저장하는 컴퓨터의 CPU 기능입니다.CPU counters are a feature of the computer's CPU that store the count of hardware-related events. 계측 프로파일링 방법을 사용하여 CPU 카운터 데이터를 수집하는 경우 데이터는 함수 및 모듈에 대한 데이터에 추가됩니다.When you collect CPU counter data by using the instrumentation profiling method, the data is appended to the data for functions and modules. 계측 방법을 사용하면 여러 CPU 카운터를 수집할 수 있습니다.You can collect multiple CPU counters using the instrumentation method. 샘플링 방법을 사용하는 경우 하나의 카운터를 선택하여 샘플링할 이벤트로 사용합니다.When you use the sampling method, you select one counter to use as the event to be sampled.

성능 카운터는 CPU마다 다릅니다.Performance counters are CPU-specific. 다양한 CPU 모델 및 버전이 동일한 성능 카운터를 사용할 수 있도록 크게 다른 구성 설정을 가질 수 있습니다.Different models and versions of a CPU can have significantly different configuration settings to enable the same performance counter. Visual Studio 2012Visual Studio 2012 프로파일러 Portable Events는 특정 프로세서에서 몇 가지 일반적인 성능 카운터를 분리하고 일반 성능 이벤트를 수집하거나 샘플링할 수 있도록 합니다. Profiler portable events decouple some common performance counters from specific processors and enable you to collect or sample generic performance events.

프로파일러를 사용할 때 L2 캐시 누락과 같은 특정 이벤트의 수를 계산하려는 경우 해당 이벤트 전송자를 중심으로 성능 세션을 빌드할 수 있습니다.If you want to count a particular event when you use the profiler, for example, L2 cache misses, you can build a performance session around that event sender. L2 캐시가 있는 모든 CPU에서 이를 수행할 수 있습니다.You can do this on any CPU with an L2 cache. 성능 세션은 수정 없이 플랫폼 간에 이동할 수 있습니다.The performance session can be moved from platform to platform without modification.

Visual Studio 프로파일러는 특정 플랫폼에 대한 특정 이벤트를 계속 지원합니다.The Visual Studio profiler continues to support particular events for a specific platform. 예를 들어 Pentium 4 플랫폼의 개발자가 NetBurst 아키텍처와 관련된 이벤트 수를 계산하려고 할 수 있습니다.For example, a developer on a Pentium 4 platform might want to count events that are specific to the NetBurst architecture. 이 이벤트를 이식할 수는 없지만, 특정 플랫폼의 특정 성능 세션에서는 개발자가 계속 사용할 수 있습니다.This event is not portable, but still available to the developer for a specific performance session on a specific platform.

Portable Events 및 Platform EventsPortable and Platform events

Portable Events는 특정 프로세서에만 한정되지 않은 CPU 카운터 그룹입니다.Portable events are a group of CPU counters that are not specific to a specific processor. 다른 모든 CPU 카운터는 Platform Events라고 하며, 다양한 플랫폼에서 지원되지 않을 수 있습니다.All other CPU counters are called platform events, and might not be supported on various platforms.

Portable Events와 Platform Events 둘 다에 대한 카운터는 카운터와 관련된 구체적인 값을 제공하는 .XML 파일에 정의되어 있습니다.Counters for both portable and platform events are defined in .XML files, where specific values that are related to the counters are provided. 예를 들어 Intel 및 AMD CPU에 대한 데이터가 서로 다르므로 다양한 CPU에 대한 여러 파일이 있습니다.There are multiple files for different CPUs, because data for Intel and AMD CPUs, for example, are different. Visual Studio 2008Visual Studio 2008 프로파일러는 이 정보를 사용하여 성능 측정에 대한 Portable Events와 Platform Events 둘 다의 적절한 카운터를 사용자에게 제공합니다.The Visual Studio 2008Visual Studio 2008 Profiler uses this information to present appropriate counters, both portable and platform, to the user for performance measurement.

Portable EventsPortable Events

Portable Events에는 다음 이벤트가 포함됩니다.Portable events contain the following events:

일반 이벤트General Events

이벤트 이름Event Name 이벤트 설명Event Description
Instructions RetiredInstructions Retired 이벤트가 완료될 때까지 실행된 명령의 수를 나타냅니다.Indicates the number of instructions that executed until the event is completed.
Non Halted CyclesNon Halted Cycles 프로세서가 중지되지 않은 해당 사이클만 나타냅니다(예: I/O 대기).Indicates only those cycles in which the processor is not stopped, for example, waiting for I/O.

프런트 엔드 이벤트Front End Events

이벤트 이름Event Name 이벤트 설명Event Description
ITLB MissesITLB Misses 누락을 발생시킨 ITLB(Instruction Translation Lookaside Buffer) 조회의 수를 나타냅니다.Indicates the number of Instruction Translation Look-aside Buffer lookups that resulted in a miss.

분기 이벤트Branch Events

이벤트 이름Event Name 이벤트 설명Event Description
Branches RetiredBranches Retired 이벤트가 완료될 때까지 실행된 분기 명령의 수를 나타냅니다.Indicates the number of branch instructions executed until the event is completed.
Mis-predicted BranchesMis-predicted Branches 프로세서가 잘못된 경로를 예측해서 발생하는 잘못 예측된 분기를 나타냅니다.Indicates mis-predicted branches that occur because the processor predicted an incorrect path. 잘못 예측된 분기는 프로세서가 수행된 모든 작업을 취소하고 올바른 경로에서 다시 시작해야 하므로 성능에 영향을 줍니다.Mis-predicted branches affect performance because the processor must discard all the work done and start again on a correct path.

메모리 이벤트:Memory Events:

이벤트 이름Event Name 이벤트 설명Event Description
L2 Cache Read MissesL2 Cache Read Misses 두 번째 수준의 캐시 읽기 누락의 수를 나타냅니다.Indicates the number of second level cache read misses.
L2 Cache Read ReferencesL2 Cache Read References 두 번째 수준의 캐시 읽기 참조의 수를 나타냅니다.Indicates the number of second level cache read references. 소유권(RFO) 누락 및 적중에 대한 로드 누락과 읽기가 포함됩니다.It includes load misses and read for ownership (RFO) misses and hits.

사용 가능한 카운터 보기Viewing Available Counters

Visual Studio IDE의 명령 프롬프트 창에서 사용 가능한 CPU 카운터를 나열할 수 있습니다.You can list the available CPU counters in the Visual Studio IDE on in a Command Prompt window.

Visual Studio UIVisual Studio UI

Visual Studio IDE에서 컴퓨터에 사용 가능한 카운터를 나열하려면 성능 탐색기에서 프로파일러 성능 세션이 열려 있어야 합니다.To list the available counters on a computer in the Visual Studio IDE, you must have a profiler performance session open in Performance Explorer.

현재 플랫폼에서 지원되는 모든 CPU 카운터의 목록을 보려면To view a list of a list of all CPU counters that are supported on the current platform

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

  2. 다음 작업 중 하나를 수행합니다.Do one of the following:

    • 샘플링을 클릭한 후 샘플 이벤트 목록에서 성능 카운터를 선택합니다.Click Sampling, and then select Performance counter from the Sample event list. CPU 카운터가 사용 가능한 성능 카운터에 나열됩니다.The CPU counters are listed in Available performance counters.

      참고 이전 샘플링 구성으로 돌아가려면 취소를 클릭합니다.Note Click Cancel to return to the previous sampling configuration.

      또는-or-

    • CPU 카운터를 선택한 후 CPU 카운터 수집을 선택합니다.Select CPU Counters, and then select Collect CPU Counters. CPU 카운터가 사용 가능한 카운터에 나열됩니다.The CPU counters are listed in Available counters.

      참고 이전 카운터 수집 구성으로 돌아가려면 취소를 클릭합니다.Note Click Cancel to return to the previous counter collection configuration.

현재 플랫폼에서 지원되는 Windows 카운터의 목록을 보려면To view a list of a list of Window counters that are supported on the current platform

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

  2. Windows 카운터를 클릭합니다.Click Windows Counters.

  3. Windows 카운터 수집을 선택합니다.Select Collect Windows Counters.

  4. 카운터 범주 목록에서 카운터 그룹을 선택합니다.From the Counter Category list, select a counter group. 그룹의 Windows 카운터가 목록 상자에 표시됩니다.The Windows counter for the group is displayed in the list box.

    참고: 이전 카운터 수집 구성으로 돌아가려면 취소를 클릭합니다.Note: Click Cancel to return to the previous counter collection configuration.

명령줄Command Line

VSPerfCmd 명령줄 도구를 사용하면 명령줄에서 컴퓨터에 사용할 수 있는 CPU 카운터를 나열할 수 있습니다.Using the VSPerfCmd command line tool, you can list the CPU counters that are available on a computer from the command line.

현재 플랫폼에서 지원되는 CPU 카운터의 목록을 표시하려면To list of CPU counters that are supported on the current platform

  1. 명령 프롬프트 창을 엽니다.Open a command prompt window.

  2. 형식Type

    <Visual Studio 성능 도구 디렉터리>\VSPerfCmd /querycounters<Visual Studio Performance Tools Directory>\VSPerfCmd /querycounters

    여기서 <Visual Studio 성능 도구 디렉터리> 는 Visual Studio 설치의 성능 도구 디렉터리 경로이며, 일반적으로 다음과 같습니다.where <Visual Studio Performance Tools Directory> is the path to the Performance Tools directory of your Visual Studio installation, usually

    C:\Program Files\Microsoft Visual Studio 10.0\Team Tools\Performance ToolsC:\Program Files\Microsoft Visual Studio 10.0\Team Tools\Performance Tools

참고 항목See also

개요Overviews
방법: 샘플링 이벤트 선택How to: Choose Sampling Events
방법: CPU 카운터 데이터 수집How to: Collect CPU Counter Data
방법: Windows 카운터 데이터 수집How to: Collect Windows Counter Data