다음을 통해 공유


CPU 및 Windows 카운터

업데이트: 2007년 11월

Visual Studio 2008 프로파일러를 사용하면 운영 체제에서 생성한 성능 데이터(Windows 카운터) 및 프로세서 단위에서 생성한 성능 데이터(CPU 카운터)를 수집할 수 있습니다. 또한 샘플로 프로파일링을 수행하는 경우에는 샘플링 간격을 생성하는 데 사용되는 이벤트로 CPU 카운터를 선택할 수도 있습니다.

Windows 카운터

Windows 카운터는 운영 체제나 응용 프로그램, 서비스 또는 드라이버의 성능에 대한 정보를 제공하는 Windows 진단 인프라의 일부입니다. Windows 카운터는 현재 컴퓨터의 구성에 따라 다르며 다른 컴퓨터에서는 사용하지 못할 수도 있습니다.

CPU 카운터

CPU 카운터는 하드웨어 관련 이벤트의 수를 저장하는 컴퓨터 CPU의 기능입니다. Visual Studio 2008 프로파일러를 사용하면 계측을 통해 프로파일링을 수행할 때 이러한 이벤트 수를 샘플링 간격으로 사용하거나 이벤트 수를 수집할 수 있습니다.

성능 카운터는 CPU에 따라 다릅니다. 서로 CPU 모델 및 버전에서 동일한 성능 카운터를 사용하려면 구성 설정이 상당히 다를 수 있습니다. Visual Studio 2008 프로파일러의 이식 가능한 이벤트는 공통적으로 사용되는 일부 성능 카운터를 특정 프로세서에서 분리하고, 일반 성능 이벤트를 수집 또는 샘플링할 수 있도록 합니다.

L2 캐시가 누락되는 경우와 같이 프로파일링할 때 특정 이벤트 수를 세야 하는 경우 사용자는 해당 이벤트 소스 주변의 성능 세션을 빌드할 수 있습니다. 이 작업은 L2 캐시를 사용하는 모든 CPU에서 수행할 수 있습니다. 성능 세션은 수정하지 않고도 플랫폼 간에 이동할 수 있습니다.

Visual Studio 2008 프로파일러는 특정 플랫폼에 대한 특정 이벤트를 계속해서 지원합니다. 예를 들어 Pentium 4 플랫폼의 개발자가 NetBurst 아키텍처에서만 발생하는 이벤트 수를 셀 수 있습니다. 이 이벤트는 이식 가능하지 않지만 특정 플랫폼의 특정 성능 세션에 대해서도 사용할 수 있습니다.

이식 가능한 이벤트 및 플랫폼 이벤트

이식 가능한 이벤트는 특정 CPU에 국한되지 않는 카운터 그룹입니다. 다른 모든 카운터는 플랫폼 이벤트라고 하며, 여러 플랫폼에서 지원되지 않을 수도 있습니다.

이식 가능한 이벤트 및 플랫폼 이벤트 모두에 대한 카운터가 .XML 파일에 정의되며, 여기에는 카운터와 관련된 특정 값이 들어 있습니다. CPU에 따라 파일도 달라지는데, 그 이유는 가령 Intel 및 AMD CPU의 데이터가 서로 다르기 때문입니다. Visual Studio 2008 프로파일러는 이 정보를 사용하여 이식 가능한 카운터 및 플랫폼 카운터 중에서 성능을 측정하는 데 적합한 카운터를 사용자에게 표시합니다.

이식 가능한 이벤트

이식 가능한 이벤트에는 다음과 같은 이벤트가 포함됩니다.

일반 이벤트

이벤트 이름

이벤트 설명

Instructions Retired

완료할 때까지 실행된 명령의 수를 나타냅니다.

Non Halted Cycles

입력 및 출력을 위해 대기하는 경우와 같이 프로세서가 중지되지 않은 주기만 나타냅니다.

프런트 엔드 이벤트

이벤트 이름

이벤트 설명

ITLB Misses

실패한 ITLB(Instruction Translation Look-aside Buffer) 조회의 수를 나타냅니다.

분기 이벤트

이벤트 이름

이벤트 설명

Branches Retired

완료할 때까지 실행된 분기 명령의 수를 나타냅니다.

Mis-predicted Branches

프로세서에서 경로를 잘못 예상하여 발생한 잘못 예측된 분기를 나타냅니다. 프로세서에서 수행한 모든 작업을 버리고 올바른 경로로 작업을 다시 시작해야 하므로 잘못 예상된 분기는 성능에 영향을 줍니다.

메모리 이벤트

이벤트 이름

이벤트 설명

L2 Cache Read Misses

2 수준 캐시 읽기 실패의 수를 나타냅니다.

L2 Cache Read References

2 수준 캐시 읽기 참조의 수를 나타냅니다. 여기에는 로드 실패와 RFO(Read For Ownership) 실패 및 적중이 포함됩니다.

Pentium IV 이벤트

Pentium IV 이벤트에는 다음 이벤트가 포함됩니다.

메모리 이벤트

이벤트 이름

이벤트 설명

64K Alias Conflicts

64K 별칭 충돌의 수를 나타냅니다. 이미 L1 캐시에 있는 다른 캐시 라인과 별도로 modulo 64K바이트인 캐시 라인을 가상 메모리 주소에서 참조하는 경우 충돌이 발생합니다.

Page Walk DTLB Misses

DTLB(Data Translation Look-aside Buffer) 실패로 인해 발생한 페이지 워크 요청 수를 나타냅니다. 페이지 워크 DTLB에 실패하면 운영 체제에서 필요한 페이지를 테이블로 로드할 수 있도록 페이지 폴트가 발생합니다.

L3 Cache Read Misses

3 수준 캐시 읽기 실패의 수를 나타냅니다. 여기에는 로드 및 RFO(Read For Ownership)로 인해 발생한 실패가 포함됩니다.

L3 Cache Read References

3 수준 캐시 읽기 참조의 수를 나타냅니다. 여기에는 로드 실패와 RFO(Read For Ownership) 실패 및 적중이 포함됩니다.

All MOB Load Replays

저장 후 로드라는 진행 순서의 제한을 따르지 않아 MOB(Memory Order Buffer) 재생 문제가 발생한 로드 명령의 수를 나타냅니다.

Load/Store Splits Completed

로드 및 저장 분할 수를 나타냅니다. 데이터를 분할하면 프로세서에서 두 개의 캐시 라인을 개별적으로 읽거나 쓴 다음 데이터의 두 부분을 다시 하나로 합쳐야 하므로 성능이 저하됩니다.

프런트 엔드 이벤트

이벤트 이름

이벤트 설명

Page Walk ITLB Misses

ITLB 실패로 인한 페이지 워크 요청의 수를 나타냅니다.

ITLB References

ITLB(Instruction Translation Look-aside Buffer) 캐시 액세스를 나타냅니다.

분기 이벤트

이벤트 이름

이벤트 설명

Trace Cache Lookup Misses

추적 캐시 조회 실패로 인해 명령을 디코딩하고 추적을 빌드하느라 발생한 지연을 나타냅니다.

부동 소수점 단위

이벤트 이름

이벤트 설명

64-bit MMX Micro-Ops Retired

필수 64비트 MMX 마이크로 작업의 수를 나타냅니다. 어셈블리 명령을 하나 이상의 마이크로 작업으로 분할할 수 있습니다.

X87 SIMD Micro-Ops Retired

필수 X87 SIMD(Single Instruction Multiple Data) 마이크로 작업의 수를 나타냅니다. 어셈블리 명령을 하나 이상의 마이크로 작업으로 분할할 수 있습니다.

X87 Floating Point Micro-Ops Retired

필수 X87 부동 소수점 마이크로 작업의 수를 나타냅니다. 어셈블리 명령을 하나 이상의 마이크로 작업으로 분할할 수 있습니다.

Packed Single Precision Micro-Ops Retired

필수 압축된 단정밀도 마이크로 작업의 수를 나타냅니다. 데이터의 압축을 풀려면 명령이 추가로 필요합니다.

Scalar Single Precision Micro-Ops Retired

필수 스칼라 단정밀도 마이크로 작업의 수를 나타냅니다.

Packed Double Precision Micro-Ops Retired

필수 압축된 배정밀도 마이크로 작업의 수를 나타냅니다. 데이터의 압축을 풀려면 명령이 추가로 필요합니다.

Scalar Double Precision Micro-Ops Retired

필수 스칼라 배정밀도 마이크로 작업의 수를 나타냅니다.

128-bit MMX Micro-Ops Retired

필수 128비트 MMX 마이크로 작업의 수를 나타냅니다. 어셈블리 명령을 하나 이상의 마이크로 작업으로 분할할 수 있습니다.

SSE Input Assists

SSE/SSE2 부동 소수점 연산을 위한 예외 조건을 처리하는 데 필요한 지원 수를 나타냅니다.

사용 가능한 카운터 보기

Visual Studio UI

현재 플랫폼에서 지원되는 모든 CPU 성능 카운터 목록을 보려면 성능 세션 속성 페이지를 열어서 다음 중 하나를 수행합니다.

  • 샘플링을 선택하고 샘플 이벤트 목록에서 성능 카운터를 선택합니다.

    - 또는 -

  • CPU 카운터를 선택하고 CPU 카운터 수집을 선택합니다.

현재 플랫폼에서 지원되는 Windows 성능 카운터 목록을 보려면 성능 세션 속성 페이지를 열어서 Windows 카운터를 선택합니다.

명령줄

현재 플랫폼에서 지원되는 모든 CPU 성능 카운터의 목록을 인쇄하려면 VSPerfCmd.exe의 /querycounters 옵션을 사용합니다.

참고 항목

작업

방법: 샘플링 이벤트 선택

방법: CPU 카운터 데이터 수집

방법: Windows 카운터 데이터 수집

기타 리소스

개요(프로파일링 도구)