방법: 명령줄을 통해 네이티브 서비스에 프로파일러를 연결하여 응용 프로그램 통계 수집How to: Attach the Profiler to a Native Service to Collect Application Statistics by Using the Command Line

이 항목에서는 Visual StudioVisual Studio 프로파일링 도구 명령줄 도구를 사용하여 프로파일러를 네이티브 서비스에 연결하고 샘플링 방법을 통해 성능 통계를 수집하는 방법에 대해 설명합니다.This topic describes how to use the Visual StudioVisual Studio Profiling Tools command-line tools to attach the profiler to a native service and collect performance statistics by using the sampling method.

참고

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.

참고

프로파일링 도구의 명령줄 도구는 Visual StudioVisual Studio 설치 디렉터리의 \Team Tools\Performance Tools 하위 디렉터리에 있습니다.Command-line tools of the Profiling Tools are located in the \Team Tools\Performance Tools subdirectory of the Visual StudioVisual Studio installation directory. 64비트 컴퓨터에서는 도구의 64비트 및 32비트 버전을 둘 다 사용할 수 있습니다.On 64 bit computers, both 64 bit and 32 bit versions of the tools are available. 프로파일러 명령줄 도구를 사용하려면 도구 경로를 명령 프롬프트 창의 PATH 환경 변수에 추가하거나 명령 자체에 추가해야 합니다.To use the profiler command-line tools, you must add the tools path to the PATH environment variable of the command prompt window or add it to the command itself. 자세한 내용은 명령줄 도구의 경로 지정을 참조하세요.For more information, see Specifying the Path to Command Line Tools.

프로파일러가 서비스에 연결되면 데이터 수집을 일시 중지하고 다시 시작할 수 있습니다.While the profiler is attached to the service, you can pause and resume data collection.

프로파일링 세션을 종료하려면 프로파일러를 서비스에서 분리하고 명시적으로 종료해야 합니다.To end a profiling session, the profiler must be detached from the service and the profiler must be explicitly shut down.

프로파일러를 사용하여 응용 프로그램 시작Starting the Application with the Profiler

프로파일러를 네이티브 서비스에 연결하려면 VSPerfCmd.exe/start/attach 옵션을 사용하여 프로파일러를 초기화하고 대상 응용 프로그램에 연결합니다.To attach the profiler to a native service, you use the VSPerfCmd.exe/start and /attach options to initialize the profiler and attach it to the target application. /start/attach와 해당 개별 옵션을 단일 명령줄에서 지정할 수 있습니다.You can specify /start and /attach and their respective options on a single command line. /globaloff 옵션을 추가하여 대상 응용 프로그램 시작 시 데이터 수집을 일시 중지할 수도 있습니다.You can also add the /globaloff option to pause data collection at the start of the target application. 그런 다음 /globalon을 사용하여 데이터 수집을 시작할 수 있습니다.You can then use /globalon to begin collecting data.

네이티브 서비스에 프로파일러를 연결하려면To attach the Profiler to a native service

  1. 필요한 경우 서비스를 시작합니다.If necessary, start the service.

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

  3. 프로파일러를 시작합니다.Start the profiler. 유형:Type:

    VSPerfCmd /start:sample /output : OutputFile [Options]VSPerfCmd /start:sample /output : OutputFile [Options]

    • /start:sample 옵션은 프로파일러를 초기화합니다.The /start:sample option initializes the profiler.

    • /start에는 /output:OutputFile 옵션이 필요합니다.The /output:OutputFile option is required with /start. OutputFile은 프로파일링 데이터(.vsp) 파일의 이름과 위치를 지정합니다.OutputFile specifies the name and location of the profiling data (.vsp) file.

      /start:sample 옵션과 다음 옵션을 함께 사용할 수 있습니다.You can use any of the following options with the /start:sample option.

    참고

    /user/crosssession 옵션은 대개 서비스에 필요합니다.The /user and /crosssession options are usually required for services.

    옵션Option 설명Description
    /user :[Domain\]UserName/user :[Domain\]UserName 프로파일링된 프로세스를 소유한 계정의 도메인 및 사용자 이름을 지정합니다.Specifies the domain and user name of the account that owns the profiled process. 이 옵션은 프로세스가 로그온한 사용자 이외의 사용자로 실행 중인 경우에만 필요합니다.This option is required only if the process is running as a user other than the logged on user. [Windows 작업 관리자]의 [프로세스] 탭에 있는 [사용자 이름] 열에 프로세스 소유자가 나열됩니다.The process owner is listed in the User Name column on the Processes tab of Windows Task Manager.
    /crosssession/crosssession 프로세스 프로파일링 기능을 다른 세션에서 사용하도록 설정합니다.Enables profiling of processes in other sessions. 이 옵션은 응용 프로그램이 다른 세션에서 실행 중인 경우 필요합니다.This option is required if the application is running in a different session. [Windows 작업 관리자]의 [프로세스] 탭에 있는 [세션 ID] 열에 세션 ID가 나열됩니다.The session id is listed in the Session ID column on the Processes tab of Windows Task Manager. /CS/crosssession에 대한 약어로 지정할 수 있습니다./CS can be specified as an abbreviation for /crosssession.
    /wincounter : WinCounterPath/wincounter : WinCounterPath 프로파일링 중에 수집할 Windows 성능 카운터를 지정합니다.Specifies a Windows performance counter to be collected during profiling.
    /automark : Interval/automark : Interval /wincounter와 함께 사용해야 합니다.Use with /wincounter only. Windows 성능 카운터 수집 이벤트 사이에 경과하는 시간(밀리초)을 지정합니다.Specifies the number of milliseconds between Windows performance counter collection events. 기본값은 500ms입니다.Default is 500 ms.
    /events : Config/events : Config 프로파일링 중에 수집할 ETW(Windows용 이벤트 추적) 이벤트를 지정합니다.Specifies an Event Tracing for Windows (ETW) event to be collected during profiling. ETW 이벤트는 별도의 파일(.etl)로 수집됩니다.ETW events are collected in a separate (.etl) file.
  4. 프로파일러를 서비스에 연결합니다.Attach the profiler to the service. 유형:Type:

    VSPerfCmd /attach: PID [Sample Event]VSPerfCmd /attach: PID [Sample Event]

    PID는 대상 응용 프로그램의 프로세스 ID를 지정합니다.PID specifies the process ID of the target application. [Windows 작업 관리자]에서 모든 실행 중인 프로세스의 프로세스 ID를 볼 수 있습니다.You can view the process IDs of all running processes in Windows Task Manager.

    기본적으로 성능 데이터는 10,000,000번의 무중단 프로세서 클록 주기마다 샘플링됩니다.By default, performance data is sampled every 10,000,000 non-halted processor clock cycles. 이는 1GH 프로세서에서 약 10초마다 1회 샘플링합니다.This is approximately once every 10 seconds on a 1GH processor. 다음 옵션 중 하나를 지정하여 클록 주기 간격을 변경하거나 다른 샘플링 이벤트를 지정할 수 있습니다.You can specify one of the following options to change the clock cycle interval or to specify a different sampling event.

    샘플 이벤트Sample Event 설명Description
    /timer : Interval/timer : Interval 샘플링 간격을 Interval에 지정된 무중단 클록 주기 수로 변경합니다.Changes the sampling interval to the number of non-halted clock cycles specified by Interval.
    /pf[:Interval]/pf[:Interval] 샘플링 이벤트를 페이지 폴트로 변경합니다.Changes the sampling event to page faults. Interval이 지정되면 샘플 간의 페이지 폴트 수를 설정합니다.If Interval is specified, sets the number of page faults between samples. 기본값은 10입니다.Default is 10.
    /sys [:Interval]/sys [:Interval] 샘플링 이벤트를 운영 체제 커널에 대한 프로세스의 시스템 호출로 변경합니다(syscalls).Changes the sampling event to system calls from the process to the operating system kernel (syscalls). Interval이 지정되면 샘플 간의 호출 수를 설정합니다.If Interval is specified, sets the number of calls between samples. 기본값은 10입니다.Default is 10.
    /counter : Config/counter : Config 샘플링 이벤트 및 간격을 Config에 지정된 프로세서 성능 카운터 및 간격으로 변경합니다.Changes the sampling event and interval to the processor performance counter and interval specified in Config.

데이터 컬렉션 제어Controlling Data Collection

대상 응용 프로그램이 실행되는 동안 VSPerfCmd.exe 옵션을 사용하여 프로파일러 데이터 파일에 대한 데이터 쓰기를 시작하고 중지할 수 있습니다.While the target application is running, you can use VSPerfCmd.exe options to start and stop the writing of data to the profiler data file. 데이터 수집을 제어하면 응용 프로그램의 시작 또는 종료와 같이 프로그램 실행의 특정 부분에 대한 데이터를 수집할 수 있습니다.Controlling data collection enables you to collect data for a specific part of program execution, such as starting or shutting down the application.

데이터 수집을 시작 및 중지하려면To start and stop data collection

  • VSPerfCmd 옵션의 다음 쌍을 사용하여 데이터 수집을 시작 및 중지합니다.The following pairs of VSPerfCmd options start and stop data collection. 각 옵션을 개별 명령줄에서 지정합니다.Specify each option on a separate command line. 데이터 수집을 여러 번 켜고 끌 수 있습니다.You can turn data collection on and off multiple times.

    옵션Option 설명Description
    /globalon /globaloff/globalon /globaloff 모든 프로세스에 대한 데이터 수집을 시작(/globalon) 또는 중지(/globaloff)합니다.Starts (/globalon) or stops (/globaloff) data collection for all processes.
    /processon : PID /processoff : PID/processon : PID /processoff : PID 프로세스 ID(PID)로 지정된 프로세스에 대한 데이터 수집을 시작(/processon) 또는 중지(/processoff)합니다.Starts (/processon) or stops (/processoff) data collection for the process specified by the process ID (PID).
    /attach: {PID|ProcName} /detach[:{PID|ProcName}]/attach: {PID|ProcName} /detach[:{PID|ProcName}] /attach는 프로세스 ID 또는 프로세스 이름으로 지정된 프로세스에 대한 데이터 수집을 시작합니다./attach starts to collect data for the process specified by the process ID or process name. /detach는 지정된 프로세스 또는 모든 프로세스(프로세스가 지정되지 않은 경우)에 대한 데이터 수집을 중지합니다./detach stops data collection for the specified process, or for all processes if a process is not specified.

프로파일링 세션 종료Ending the Profiling Session

프로파일링 세션을 종료하려면 프로파일러를 서비스에서 분리한 다음 명시적으로 종료해야 합니다.To end a profiling session, the profiler must be detached from the service and then explicitly shut down. 서비스를 중지하거나 VSPerfCmd /detach 옵션을 호출하여 샘플링 방법으로 프로파일링 중인 네이티브 서비스를 분리할 수 있습니다.You can detach native service that is being profiled with the sampling method by stopping the service or by calling the VSPerfCmd /detach option. 그런 다음 VSPerfCmd /shutdown 옵션을 호출하여 프로파일러를 끄고 프로파일링 데이터 파일을 닫습니다.You then call the VSPerfCmd /shutdown option to turn the profiler off and close the profiling data file.

프로파일링 세션을 종료하려면To end a profiling session

  1. 다음 중 하나를 수행하여 대상 응용 프로그램에서 프로파일러를 분리합니다.Do one of the following to detach the profiler from the target application:

    • 서비스를 중지합니다.Stop the service.

      또는-or-

    • VSPerfCmd /detach 입력Type VSPerfCmd /detach

  2. 프로파일러를 종료합니다.Shut down the profiler. 유형:Type:

    VSPerfCmd /shutdownVSPerfCmd /shutdown

참고 항목See Also

서비스 프로파일링 Profiling Services
샘플링 방법 데이터 뷰Sampling Method Data Views