방법: 명령줄을 통해 프로파일러와 함께 독립 실행형 네이티브 응용 프로그램을 시작하여 동시성 데이터 수집

Visual Studio 2017 RC에 대한 최신 설명서는 Visual Studio 2017 RC 설명서를 참조하세요.

이 항목에서는 Visual Studio 프로파일링 도구의 명령줄 도구를 사용하여 네이티브 독립 실행형(클라이언트) 응용 프로그램을 시작하고 프로세스 및 스레드 동시성 데이터를 수집하는 방법에 대해 설명합니다.

프로파일링 세션은 다음 작업으로 이루어집니다.

  • 프로파일러를 사용하여 응용 프로그램 시작

  • 데이터 수집 제어

  • 프로파일링 세션 종료

참고

프로파일링 도구의 명령줄 도구는 Visual Studio 설치 디렉터리의 \Team Tools\Performance Tools 하위 디렉터리에 있습니다. 64비트 컴퓨터에서는 64비트 및 32비트 버전의 도구를 모두 사용할 수 있습니다. 명령 프롬프트에서 프로파일러를 사용하려면 해당 도구 경로를 명령 프롬프트 창의 PATH 환경 변수에 추가하거나 명령 자체에 추가해야 합니다. 자세한 내용은 명령줄 도구의 경로 지정을 참조하십시오.

프로파일러를 사용하여 응용 프로그램 시작

프로파일러를 사용하여 대상 응용 프로그램을 실행하려면 VSPerfCmd.exe \/start\/launch 옵션을 사용하여 프로파일러를 초기화하고 응용 프로그램을 시작합니다. \/start\/launch와 해당 옵션을 지정할 수 있습니다. \/globaloff 옵션을 추가하여 대상 응용 프로그램이 시작될 때 데이터 수집을 일시 중지할 수도 있습니다. 그런 다음 \/globalon을 사용하여 데이터 수집을 시작합니다.

프로파일러를 사용하여 응용 프로그램을 시작하려면

  1. 명령 프롬프트에서 다음 명령을 입력합니다.

    VSPerfCmd \/start:concurrency \/output:OutputFile [Options]

    \/start와 함께 \/output:OutputFile 옵션을 사용해야 합니다. OutputFile은 프로파일링 데이터 파일(.vsp)의 이름과 위치를 지정합니다.

    다음 표의 옵션을 \/start:concurrency 옵션과 함께 사용할 수 있습니다.

    옵션 설명
    \/wincounter : WinCounterPath 프로파일링 중 수집할 Windows 성능 카운터를 지정합니다.
    \/automark : Interval \/wincounter에만 사용합니다. Windows 성능 카운터 수집 이벤트의 시간 간격(밀리초)을 지정합니다. 기본값은 500입니다.
    \/events : Config 프로파일링 중 수집할 ETW(Windows용 이벤트 추적) 이벤트를 지정합니다. ETW 이벤트는 별도의 파일(.etl)에 수집됩니다.
  2. 다음을 입력하여 대상 응용 프로그램을 시작합니다.

    VSPerfCmd \/launch : AppName [Options]

    다음 표의 옵션을 \/launch 옵션과 함께 사용할 수 있습니다.

    옵션 설명
    \/args : Arguments 대상 응용 프로그램에 전달할 명령줄 인수가 들어 있는 문자열을 지정합니다.
    \/console 대상 명령줄 응용 프로그램을 별도의 창에서 시작합니다.
    \/targetclr : CLRVersion 응용 프로그램에서 둘 이상의 CLR(공용 언어 런타임) 버전을 로드할 때 프로파일링할 CLR 버전을 지정합니다.

데이터 수집 제어

대상 응용 프로그램이 실행 중일 때는 VSPerfCmd.exe 옵션을 사용하여 파일에 데이터를 기록하는 작업을 시작하고 중지하는 방법으로 데이터 수집을 제어할 수 있습니다. 데이터 수집을 제어하면 응용 프로그램의 시작 또는 종료와 같은 프로그램 실행의 특정 부분에 대해 데이터를 수집할 수 있습니다.

데이터 수집을 시작 및 중지하려면

  • 다음 표에 나오는 옵션 쌍으로 데이터 수집을 시작하고 중지할 수 있습니다. 각 옵션을 별도의 명령줄에 지정합니다. 데이터 수집을 여러 번 설정하거나 해제할 수 있습니다.

    옵션 설명
    \/globalon \/globaloff 모든 프로세스에 대해 데이터 수집을 시작(\/globalon)하거나 중지(\/globaloff)합니다.
    \/processon : PID \/processoff:PID 프로세스 ID(PID)로 지정된 프로세스에 대해 데이터 수집을 시작(\/processon)하거나 중지(\/processoff)합니다.
    \/attach :{PID|ProcName} \/detach[:{PID|ProcName}] \/attach는 프로세스 ID(PID) 또는 프로세스 이름(ProcName)으로 지정된 프로세스에 대해 데이터 수집을 시작합니다. \/detach는 지정된 프로세스 또는 모든 프로세스(프로세스가 지정되지 않은 경우)에 대해 데이터 수집을 중지합니다.
  • VSPerfCmd.exe \/mark 옵션을 사용하여 데이터 파일에 프로파일링 표시를 삽입할 수도 있습니다. \/mark 명령은 식별자, 타임스탬프 및 선택적 사용자 정의 텍스트 문자열을 추가합니다. 표시를 사용하여 프로파일러 보고서와 데이터 뷰에서 데이터를 필터링할 수 있습니다.

프로파일링 세션 종료

프로파일링 세션을 종료하려면 프로파일러에서 데이터를 수집하고 있지 않아야 합니다. 프로파일링된 응용 프로그램을 닫거나 VSPerfCmd \/detach 옵션을 호출하여 데이터 수집을 중지할 수 있습니다. 그런 다음 VSPerfCmd \/shutdown 옵션을 호출하여 프로파일러를 해제하고 프로파일링 데이터 파일을 닫을 수 있습니다.

프로파일링 세션을 종료하려면

  1. 프로파일러를 닫거나 명령 프롬프트에서 다음 명령을 입력하여 대상 응용 프로그램에서 프로파일러를 분리합니다.

    VSPerfCmd \/detach

  2. 명령 프롬프트에서 다음 명령을 입력하여 프로파일러를 종료합니다.

    VSPerfCmd \/shutdown