프로파일링 도구의 CPU 및 Windows 카운터
Visual Studio 2010 프로파일러를 사용하면 운영 체제에서 생성된 성능 데이터(Windows 카운터)와 프로세서 단위에서 생성된 성능 데이터(CPU 카운터)를 수집할 수 있습니다.
Windows 카운터
Windows 카운터는 운영 체제나 응용 프로그램, 서비스 또는 드라이버의 성능에 대한 정보를 제공하는 Windows 진단 인프라의 일부입니다. Windows 카운터는 현재 컴퓨터의 구성에 따라 다르며 다른 컴퓨터에서는 사용하지 못할 수도 있습니다. Windows 성능 카운터는 프로파일링 데이터 파일에 프로파일링 표시로 수집되며 이 표시는 뷰 및 보고서를 필터링하는 데 사용될 수 있습니다.
CPU 카운터
CPU 카운터는 하드웨어 관련 이벤트의 수를 저장하는 컴퓨터 CPU의 기능입니다. 계측 프로파일링 방법을 사용하여 CPU 카운터 데이터를 수집하면 이 데이터는 함수 및 모듈에 대한 데이터에 추가됩니다. 계측 방법을 사용하여 여러 CPU 카운터를 수집할 수 있습니다. 샘플링 방법을 사용할 때는 샘플링할 이벤트로 사용할 하나의 카운터를 선택합니다.
성능 카운터는 CPU에 따라 다릅니다. 서로 CPU 모델 및 버전에서 동일한 성능 카운터를 사용하려면 구성 설정이 상당히 다를 수 있습니다. Visual Studio 2010 프로파일러의 이식 가능한 이벤트는 공통적으로 사용되는 일부 성능 카운터를 특정 프로세서에서 분리하며, 일반 성능 이벤트를 수집 또는 샘플링할 수 있도록 합니다.
프로파일러를 사용할 때 L2 캐시 실패와 같은 특정 이벤트 수를 세야 하는 경우 해당 이벤트 전송자를 중심으로 성능 세션을 빌드할 수 있습니다. 이 작업은 L2 캐시를 사용하는 모든 CPU에서 수행할 수 있습니다. 성능 세션은 수정하지 않고도 플랫폼 간에 이동할 수 있습니다.
Visual Studio 2010 프로파일러는 특정 플랫폼에 대한 특정 이벤트를 계속해서 지원합니다. 예를 들어 Pentium 4 플랫폼의 개발자가 NetBurst 아키텍처에서만 발생하는 이벤트 수를 셀 수 있습니다. 이 이벤트는 이식 가능하지 않지만 특정 플랫폼의 특정 성능 세션에 대해서도 사용할 수 있습니다.
이식 가능한 이벤트 및 플랫폼 이벤트
이식 가능한 이벤트는 특정 프로세서에 국한되지 않는 CPU 카운터 그룹입니다. 다른 모든 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) 실패 및 적중이 포함됩니다. |
사용 가능한 카운터 보기
Visual Studio IDE의 명령 프롬프트 창에서 사용 가능한 CPU 카운터 목록을 볼 수 있습니다.
Visual Studio UI
Visual Studio IDE에서 컴퓨터의 사용 가능한 카운터 목록을 보려면 성능 탐색기에서 프로파일러 성능 세션을 열어야 합니다.
현재 플랫폼에서 지원되는 모든 CPU 카운터의 목록을 보려면
성능 탐색기에서 성능 세션을 마우스 오른쪽 단추로 클릭한 다음 속성을 클릭합니다.
다음 작업 중 하나를 수행합니다.
샘플링을 클릭하고 샘플 이벤트 목록에서 성능 카운터를 선택합니다. 사용 가능한 성능 카운터에 CPU 카운터가 나열됩니다.
참고 이전 샘플링 구성으로 되돌리려면 취소를 클릭하십시오.
또는
CPU 카운터를 선택하고 CPU 카운터 수집을 선택합니다. 사용 가능한 카운터에 CPU 카운터가 나열됩니다.
참고 이전 카운터 수집 구성으로 되돌리려면 취소를 클릭하십시오.
현재 플랫폼에서 지원되는 Window 카운터의 목록을 보려면
성능 탐색기에서 성능 세션을 마우스 오른쪽 단추로 클릭한 다음 속성을 클릭합니다.
Windows 카운터를 클릭합니다.
Windows 카운터 수집을 선택합니다.
카운터 범주 목록에서 카운터 그룹을 선택합니다. 선택한 그룹의 Windows 카운터가 목록 상자에 표시됩니다.
참고 이전 카운터 수집 구성으로 되돌리려면 취소를 클릭하십시오.
명령줄
VSPerfCmd 명령줄 도구를 사용하여 명령줄에서 컴퓨터의 사용 가능한 CPU 카운터 목록을 볼 수 있습니다.
현재 플랫폼에서 지원되는 CPU 카운터의 목록을 보려면
명령 프롬프트 창을 엽니다.
다음을 입력합니다.
<Visual Studio Performance Tools Directory>\VSPerfCmd /querycounters
여기서 <Visual Studio Performance Tools Directory> 는 설치된 Visual Studio의 Performance Tools 디렉터리 경로입니다. 일반적으로 이 경로는 다음과 같습니다.
C:\Program Files\Microsoft Visual Studio 10.0\Team Tools\Performance Tools
참고 항목
작업
방법: 계측 방법을 사용하여 CPU 카운터 데이터 수집