VSPerfCmd

업데이트: 2007년 11월

VSPerfCmd 도구는 성능 데이터 수집을 시작하고 중지하는 데 사용합니다. 다음 구문이 사용됩니다.

VSPerfCmd [/U] [/options]

다음 표에서는 VSPerfCmd 도구 옵션에 대해 설명합니다.

옵션

설명

U

리디렉션된 콘솔 출력은 유니코드로 기록됩니다. 이 옵션을 가장 먼저 지정해야 합니다.

Start:mode

VSPerfMon을 시작하고 초기화될 때까지 기다립니다. OUTPUT 스위치가 필요합니다.

mode는 다음 중 하나일 수 있습니다.

COVERAGE - 코드 검사 데이터를 수집합니다.

SAMPLE - 샘플링 데이터를 수집합니다.

TRACE - 계측 데이터를 수집합니다.

Output:filename

출력 파일 이름을 지정합니다.

CrossSession|CS

크로스 프로세스 프로파일링을 사용합니다. 옵션 이름 CROSSSESSION 및 CS가 모두 지원됩니다.

User:[domain\]username

START 옵션과 함께 사용합니다. 지정된 계정으로부터 클라이언트가 모니터에 액세스할 수 있도록 합니다.

WaitStart[:n]

데이터 수집 로거의 초기화를 기다립니다. n을 지정하면 VSPerfCmd는 n초 동안만 기다립니다. n을 지정하지 않으면 VSPerfCmd는 무한정 기다립니다. 따라서 VSPerfCmd를 일괄 프로세스의 일부로 사용하기 쉽습니다.

Counter:cfg

샘플 프로파일링 방법을 사용하는 경우에는 샘플링 간격으로 사용할 이벤트 수 및 CPU 카운터를 지정합니다. 카운터 값은 하나만 샘플링할 수 있습니다.

계측 프로파일링 방법을 사용하는 경우에는 계측 지점마다 수집할 CPU 카운터를 지정합니다. 여러 개의 카운터 옵션을 지정하면 여러 카운터 데이터를 수집할 수 있습니다(계측만 해당).

카운터(cfg) 데이터를 지정하려면 다음 구문을 사용합니다.

CounterName[,Reload[,FriendlyName]]

  • CounterName은 VSPerfCmd /QueryCounters 명령을 통해 반환되는 카운터 이름입니다.

  • Reload는 카운터 이벤트 샘플링 간격입니다. 계측 방법을 사용하는 경우에는 Reload가 무시됩니다.

  • FriendlyName은 선택적 요소이며, 지정할 경우 프로파일링 도구 뷰 및 보고서의 CounterName 값이 문자열로 대체됩니다.

QueryCounters

플랫폼에 유효한 카운터의 목록을 표시합니다.

WinCounter:path

표시 데이터를 포함하도록 Windows 성능 카운터를 지정합니다. path는 PDH 카운터 경로 형식의 Windows 성능 카운터 문자열입니다. 예를 들어, 다음과 같습니다.

\Processor(0)\% Processor Time

\System\Context Switches/sec

AutoMark:n

/WINCOUNTER를 사용하는 경우 자동 표시 간의 시간 간격(밀리초)을 지정합니다. 가장 가까운 500ms까지 반올림됩니다.

자동 표시를 사용하지 않으려면 0을 사용합니다. (값을 지정하지 않는 경우 기본값=500ms)

Events:option

EVENTS 옵션은 ETW(Event Trace Window) 이벤트 수집을 제어합니다. 수집된 데이터는 ETW 공급자가 공급합니다. option 형식은 다음과 같습니다.

<on | off>, <guid>[,flags[,level]]

<on | off>, <provider name>[,flags[,level]]

guid - 공급자가 GUID를 제어합니다. 또는 공급자 이름이 WMI로 등록된 경우 GUID 대신 공급자 이름을 지정할 수 있습니다.

flags - '0x'가 접두사로 지정된 16진수 플래그 값입니다. 이벤트 공급자에 의해 정의됩니다. 자세한 내용은 ETW 공급자 설명서를 참조하십시오.

level - 수집되는 정보의 양을 결정합니다. 이벤트 공급자에 의해 정의됩니다. 자세한 내용은 ETW 공급자 설명서를 참조하십시오.

중요:

CLR ETW 이벤트가 활성화되면 추적 뷰 보고서에 추가적인 시작 데이터도 수집됩니다. 시작 이벤트가 보고서에 나타나지 않도록 하려면 다음 명령을 사용합니다.

C:\<path>VSPerfCmd -events on, \".NET Common Language Runtime\", 0x7fffffff, 5

시작 이벤트가 MOF(Managed Object Format) 파일에 나열되지 않았기 때문에 시작 이벤트를 제외하지 않으면 보고서에 GUIDS로 나타납니다. 자세한 내용은 샘플 MOF 파일을 참조하십시오.

추가적으로, EVENTS 옵션은 다음과 같은 일반 커널 옵션을 인식합니다.

on, option[,option]

여기서 옵션은 다음 중 하나입니다.

Process - 프로세스 이벤트

Thread - 스레드 이벤트

Image - 이미지 로드 및 언로드 이벤트

Disk - 디스크 I/O 이벤트

File - 파일 I/O 이벤트

Hardfault - 하드 페이지 폴트

Pagefault - 소프트 페이지 폴트

Network - 네트워크 이벤트

Registry - 레지스트리 액세스 이벤트

커널 공급자는 활성화만 가능합니다. 모니터를 종료하기 전까지는 비활성화되지 않으며 해당 플래그를 수정할 수도 없습니다.

Status

프로파일링된 해당 프로세스에 적용된 상태입니다. 프로세스와 스레드 및 현재 프로파일 상태(On/Off)가 나열됩니다. 예를 들어, 프로세스가 중지된 경우 STATUS는 보고서에 이 상태를 표시하지 않고 프로세스의 프로파일링 여부를 표시합니다.

ShutDown[:n]

모니터링되는 응용 프로그램이 종료 또는 분리될 때까지 기다린 다음 VSPerfMon.exe를 종료하고 종료가 완료될 때까지 기다립니다. n을 지정하면 VSPerfCmd는 n초 동안만 기다립니다. n을 지정하지 않으면 VSPerfCmd는 무한정 기다립니다. 따라서 VSPerfCmd를 일괄 프로세스의 일부로 사용하기 쉽습니다.

GlobalOn

GLOBALON 옵션은 GLOBALOFF 뒤에 프로파일링을 활성화합니다. 내부적으로 GLOBALON 옵션은 전역 Start/Stop 카운트를 1로 설정합니다. 자세한 내용은 GLOBALOFF를 참조하십시오.

GlobalOff

GLOBALOFF 옵션을 사용하면 모든 프로파일링이 비활성화되며 데이터가 수집되지 않습니다. 이 옵션을 사용해도 성능 세션은 종료되지 않습니다. 이 옵션을 사용하면 응용 프로그램 시작 또는 초기화 단계 도중에 데이터가 수집되지 않도록 할 수 있습니다.

관련 없는 데이터가 수집되지 않도록 하려면

ProcessOn:pid

PROCESSON은 PROCESSOFF 호출 뒤에 특정 프로세스의 프로세스 ID(pid)를 사용하여 해당 프로세스의 프로파일링을 다시 시작합니다. 내부적으로 PROCESSON 옵션은 지정된 프로세스에 대해 Start/Stop 카운트를 1로 설정합니다.

ProcessOff:pid

PROCESSOFF 옵션은 특정 프로세스의 ID(pid)를 사용하여 해당 프로세스의 프로파일링과 데이터 수집을 중지합니다. 다른 프로세스나 스레드는 데이터를 계속 수집합니다. 프로세스가 특정 상태에 도달하기 전까지는 데이터를 수집하지 않으려는 경우에 유용합니다. 프로세스가 특정 상태에 도달한 뒤 PROCESSON 옵션을 사용하여 데이터 수집을 시작할 수 있습니다. 내부적으로 PROCESSOFF는 지정된 프로세스에 대해 Start/Stop 카운트를 0으로 설정합니다.

ThreadOn:tid

THREADON은 THREADOFF 호출 뒤에 특정 스레드의 스레드 ID(tid)를 사용하여 해당 스레드의 프로파일링을 다시 시작합니다. 내부적으로 THREADON 옵션은 지정된 스레드에 대해 Start/Stop 카운트를 1로 설정합니다.

이 옵션은 TRACE 모드에서만 사용할 수 있습니다.

ThreadOff:tid

THREADOFF 옵션은 특정 스레드의 ID(tid)를 사용하여 해당 스레드의 프로파일링과 데이터 수집을 중지합니다.

다른 프로세스나 스레드는 데이터를 계속 수집합니다. 스레드가 특정 상태에 도달하기 전까지는 데이터를 수집하지 않으려는 경우에 유용합니다. 스레드가 특정 상태에 도달한 뒤 THREADON 옵션을 사용하여 데이터 수집을 시작할 수 있습니다. 내부적으로 THREADOFF는 지정된 스레드에 대해 Start/Stop 카운트를 0으로 설정합니다.

이 옵션은 TRACE 모드에서만 사용할 수 있습니다.

MARK:MarkNum[,MarkText]

옵션 텍스트와 함께 전역 이벤트 스트림에 표시를 삽입합니다. 두 표시 사이의 데이터를 검사하려는 경우 유용합니다.

marknum - ULONG 데이터 형식의 임의 값

또는 코드에서 MarkProfile API를 호출하여 응용 프로그램의 특정 영역을 표시할 수 있습니다. 이 정보는 호출 추적 보고서에서만 사용할 수 있습니다.

샘플링 방법 옵션

다음 옵션은 SAMPLE 모드에서만 사용할 수 있습니다.

옵션

설명

Launch:Executable

지정한 명령을 시작하고 샘플 기반 프로파일러를 연결합니다.

Args:Arguments

시작된 응용 프로그램에 대한 인수입니다.

Console

지정한 명령을 새 콘솔에서 시작합니다.

Attach:PID[,PID]

샘플 기반 프로파일러를 지정된 프로세스 ID(pid 또는 프로세스 이름)에 연결합니다.

Detach:PID[,PID]

샘플 기반 프로파일러를 지정된 프로세스 ID(pid 또는 프로세스 이름)에서 분리합니다.

Detach

모든 프로세스에서 샘플 기반 프로파일러를 분리합니다.

GC[:Allocation|:Lifetime]

이 옵션은 샘플링 모드에서만 사용할 수 있습니다. 관리되는 메모리 프로파일링을 활성화합니다. GC:allocation의 할당에 대한 추적만 활성화하거나 개체 GC:lifetime의 할당 및 수명에 대한 추적을 활성화할 수 있습니다. 기본값은 할당만 추적하는 것입니다. /LAUNCH 옵션과 함께 사용할 때만 유효합니다.

PF[:n]

n-번째 페이지 폴트마다 샘플링합니다(기본값=10).

Sys[:n]

n-번째 시스템 호출마다 샘플링합니다(기본값=10).

Timer[:n]

n-번째 주기마다 샘플링합니다(기본값=10000000).

서비스 구성 요소 및 커널 모드 장치 옵션

다음 옵션은 프로파일링 서비스 구성 요소나 커널 모드 장치 드라이버를 지원하며 프로파일링 권한을 설정합니다. 관리자 권한으로 실행하는 명령줄 콘솔에서 실행해야 합니다. 자세한 내용은 Using the Run As Command를 참조하십시오.

옵션

설명

Admin:Security <ALLOW|DENY> Right[ Right] <User|Group>

프로파일링 서비스에 대해 지정된 사용자 또는 그룹의 액세스 권한을 허용하거나 거부합니다.

Right은 다음 중 하나일 수 있습니다.

CrossSession - 사용자에게 서비스에 대한 액세스 권한을 부여하여 상호 세션 프로파일링을 수행할 수 있도록 합니다.

SampleProfiling - 사용자에게 드라이버에 대한 액세스 권한을 부여하여 샘플링 프로파일링을 수행할 수 있도록 합니다. 추적 프로파일링 중에 커널 전환 정보에 액세스하는 데도 사용됩니다.

FullAccess - 사용자에게 CrossSession 및 SampleProfiling 액세스 권한을 모두 부여합니다.

Admin:Security, List

프로파일링 서비스의 현재 상태를 표시하고 사용자 권한을 나열합니다.

Admin: <Service|Driver><START|STOP|INSTALL|UNINSTALL>

프로파일링 서비스 구성 요소(서비스)나 커널 모드 장치 드라이버(드라이버)를 시작하거나, 중지하거나, 설치하거나, 제거합니다.

Admin: <Service|Driver>AutoStart <ON|OFF>

다시 시작한 후에 프로파일링 서비스(서비스)나 커널 모드 장치 드라이버(드라이버)를 자동으로 시작하는 기능을 사용하거나 사용하지 않습니다.

VsPerfDrv.sys

이전 버전의 프로파일러에서는 VSPerfDrv.Sys를 사용하여 CPU 커널 모드 응용 프로그램의 컬렉션을 지원했습니다. VsPerfDrv.sys는 더 이상 사용되지 않으며 이 기능을 위해 VsPerfCmd ADMIN 옵션을 사용합니다.

참고 항목

참조

VSInstr

VSPerfMon

VSPerfReport

프로파일링 도구 보고서 열 정의