계측 데이터 값 이해Understanding Instrumentation Data Values

Visual StudioVisual Studio계측 프로파일링 방법은 함수 호출, 줄 및 프로파일링된 응용 프로그램의 명령에 대해 자세한 타이밍 정보를 기록합니다.The instrumentation profiling method of the Visual StudioVisual Studio records detailed timing information for the function calls, lines, and instructions in the profiled application

요구 사항Requirements

  • Visual Studio UltimateVisual Studio Ultimate, Visual Studio PremiumVisual Studio Premium, Visual Studio ProfessionalVisual Studio Professional, Visual Studio PremiumVisual Studio Premium, Visual Studio ProfessionalVisual Studio Professional

    계측 메서드는 프로파일링된 바이너리에서 대상 함수의 시작 및 끝 부분에 코드를 삽입하고 다른 함수들에 대한 이러한 함수의 각 호출 이전 및 다음 위치에 코드를 삽입합니다.The instrumentation method injects code at the start and end of target functions in the profiled binary, and before and after each call by those functions to other functions. 주입되는 코드는 다음 항목을 기록합니다.The injected code records the following:

  • 이 수집 이벤트와 이전 수집 이벤트 사이의 간격The interval between this collection event and the previous one.

  • 운영 체제가 간격 중에 작업을 수행했는지 여부.Whether the operating system has performed an operation during the interval. 운영 체제가 디스크 읽기/쓰기를 수행했거나 다른 프로세스에서 대상 스레드와 다른 프로세스 간을 전환한 경우를 예로 들 수 있습니다.For example, the operating system might read or write to disk, or switch between the target thread and another thread in another process.

    요구 사항Requirements

  • Visual Studio UltimateVisual Studio Ultimate, Visual Studio PremiumVisual Studio Premium, Visual Studio ProfessionalVisual Studio Professional, Visual Studio PremiumVisual Studio Premium, Visual Studio ProfessionalVisual Studio Professional

    프로파일러 분석에서는 각 간격에 대해 간격 끝에 있었던 호출 스택을 재생성합니다.For each interval, the profiler analysis reconstructs the call stack that was present at the end of the interval. 호출 스택은 특정 시점에 프로세서에서 활성 상태였던 함수의 목록입니다.A call stack is the list of functions that are active on a processor at a point in time. 하나의 함수(현재 함수)만이 코드를 실행하고 있으며, 다른 함수는 현재 함수를 호출한 함수 호출 체인(호출 스택)입니다.Only one function (the current function) is executing code; the other functions are the chain of function calls that resulted in the call to the current function (the call stack).

    호출 스택의 각 함수에 대해 간격을 기록할 때 프로파일러 분석에서는 함수의 4개 데이터 값 중 하나 이상에 간격을 추가합니다.For each function on the call stack when the interval was recorded, the profiler analysis adds the interval to one or more of four data values for the function. 이때 다음의 두 기준에 따라 데이터 값에 간격을 추가합니다.The analysis adds the interval to a data value for a function based on two criteria:

  • 해당 함수 또는 자식 함수(해당 함수가 호출한 함수)의 코드에서 간격이 발생했는지 여부Whether the interval occurred in the code of the function or in a child function (a function that was called by the function).

  • 간격에서 운영 체제 이벤트가 발생했는지 여부Whether an operating system event occurred in the interval.

    함수 또는 데이터 범위의 간격에 대한 데이터 값의 이름은 경과된 포괄 시간, 경과된 전용 시간, 응용 프로그램 포괄 시간응용 프로그램 전용 시간입니다.The data values for an interval of a function or data range are named Elapsed Inclusive, Elapsed Exclusive, Application Inclusive, and Application Exclusive:

  • 함수의 모든 간격은 경과된 포괄 시간 데이터 값에 추가됩니다.All intervals of a function are added to the Elapsed Inclusive data value.

  • 자식 함수가 아닌 함수의 코드에서 발생한 간격은 함수의 경과된 전용 시간 데이터 값에 추가됩니다.If the interval occurred in the code of the function and not in a child function, the interval is added to the Elapsed Exclusive data value of the function.

  • 간격에서 운영 체제 이벤트가 발생하지 않은 경우 간격은 응용 프로그램 포괄 시간 데이터 값에 추가됩니다.If an operating system event did not occur in the interval, the interval is added to the Application Inclusive data value.

  • 간격에서 운영 체제 이벤트가 발생하지 않았으며 자식 이벤트에서가 아니라 함수 코드의 직접 실행에서 간격이 발생한 경우 간격은 응용 프로그램 전용 시간 데이터 값에 추가됩니다.If an operating system event did not occur in the interval, and the interval occurred in the direct execution of the function code (that is, it did not occur in a child function), the interval is added to the Application Exclusive data value.

    프로파일링 도구 보고서에는 프로파일링 세션 자체와 세션의 프로세스/스레드/이진 파일에 있는 함수의 총 값이 집계되어 표시됩니다.Profiling Tools reports aggregate the total values of the functions in the profiling session itself, and the processes, threads, and binaries of the session.

경과된 포괄 시간값Elapsed Inclusive values

함수 및 해당 자식 함수를 실행하는 데 소요된 총 시간입니다.The total time that was spent executing a function and its child functions.

경과된 포괄 시간값에는 함수 코드를 직접 실행하는 데 소요된 간격과 대상 함수의 자식 함수를 실행하는 데 소요된 간격이 포함됩니다.Elapsed Inclusive values include the intervals that were spent directly executing the function code and the intervals that were spent executing the child functions of the target function. 운영 체제 대기를 포함하는 함수 또는 해당 자식 함수의 간격도 경과된 포괄 시간값에 포함됩니다.Intervals of the function or its child functions that include waiting for the operating system are also included in Elapsed Inclusive values.

경과된 전용 시간 값Elapsed Exclusive values

자식 함수에서 소요된 시간을 제외하고 함수를 실행하는 데 소요된 시간입니다.The time that was spent executing a function, excluding time that was spent in child functions.

경과된 전용 시간 값에는 간격에서 운영 체제 이벤트가 발생했는지 여부에 관계없이 함수 코드를 직접 실행하는 데 소요된 간격이 포함됩니다.Elapsed Exclusive values include the intervals that were spent directly executing the function code, regardless of whether an operating system event occurred in the interval. 대상 함수가 호출한 자식 함수에서 소요된 모든 간격은 경과된 전용 시간 값에 포함되지 않습니다.All intervals spent in child functions that were called by the target function are not included in Elapsed Exclusive values.

응용 프로그램 포괄 시간 값Application Inclusive values

운영 체제 이벤트에서 소요된 시간을 제외하고 함수 및 해당 자식 함수를 실행하는 데 소요된 시간입니다.The time that was spent executing a function and its child functions, excluding time that was spent in operating system events.

응용 프로그램 포괄 시간 값에는 운영 체제 이벤트를 포함 하는 간격이 포함되지 않습니다.Application Inclusive values do not include intervals that contain operating system events. 응용 프로그램 포괄 시간 값에는 간격이 함수 코드를 직접 실행하는 데 소요되었는지 아니면 대상 함수의 자식 함수에서 소요되었는지에 관계없이 함수를 실행하는 데 소요된 기타 모든 간격이 포함됩니다.Application Inclusive values include all other intervals that were spent executing a function, regardless of whether the interval was spent directly executing the function code or was spent in child functions of the target function.

응용 프로그램 전용 시간 값Application Exclusive values

자식 함수에서 소요된 시간과 운영 체제 이벤트에서 소요된 시간을 제외하고 함수를 실행하는 데 소요된 시간입니다.The time that was spent executing a function, excluding the time that was spent in child functions and the time that was spent in operating system events.

응용 프로그램 전용 시간 값에는 운영 체제 이벤트가 포함된 간격이나 함수가 호출한 함수를 실행하는 데 소요된 간격은 포함되지 않습니다.Application Exclusive values do not include intervals that contain operating system events or intervals that were spent executing functions that were called by the function. 함수 코드를 직접 실행하는 데 소요되었으며 운영 체제 이벤트를 포함하지 않는 간격만 응용 프로그램 전용 시간 값에 포함됩니다.Application Exclusive values include only those intervals that were spent directly executing the function code and that did not contain an operating system event.

경과된 포괄 시간 백분율Elapsed Inclusive percent

함수, 모듈, 스레드 또는 프로세스의 경과된 포괄 시간값인 프로파일링 세션의 총 경과된 포괄 시간값 백분율입니다.The percentage of the total Elapsed Inclusive values of the profiling session that were Elapsed Inclusive values of the function, module, thread, or process.

100 * 함수 경과된 포괄 시간/세션 경과된 포괄 시간100 * Function Elapsed Inclusive / Session Elapsed Inclusive

경과된 전용 시간 백분율Elapsed Exclusive percent

함수, 모듈, 스레드 또는 프로세스의 경과된 전용 시간값인 프로파일링 세션의 총 경과된 포괄 시간값 백분율입니다.The percentage of the total Elapsed Inclusive values of the profiling session that were Elapsed Exclusive values of the function, module, thread, or process.

100 * 함수 경과된 전용 시간/세션 경과된 포괄 시간100 * Function Elapsed Exclusive / Session Elapsed Inclusive

응용 프로그램 포괄 시간 백분율Application Inclusive percent

함수, 모듈, 스레드 또는 프로세스의 응용 프로그램 포괄 시간 값인 프로파일링 세션의 총 응용 프로그램 포괄 시간 값 백분율입니다.The percentage of the total Application Inclusive values of the profiling session that were Application Inclusive values of the function, module, thread, or process.

100 * 함수 응용 프로그램 포괄 시간/세션 응용 프로그램 포괄 시간100 * Function Application Inclusive / Session Application Inclusive

응용 프로그램 전용 시간 백분율Application Exclusive percent

함수, 모듈, 스레드 또는 프로세스의 응용 프로그램 전용 간격 값인 프로파일링 세션의 총 응용 프로그램 포괄 시간 값 백분율입니다.The percentage of the total Application Inclusive values of the profiling session that were Application Exclusive intervals of the function, module, thread, or process.

100 * 함수 응용 프로그램 전용 시간/세션 응용 프로그램 포괄 시간100 * Function Application Exclusive / Session Application Inclusive

참고 항목See Also

성능 도구 데이터 분석 Analyzing Performance Tools Data
방법: 수집 방법 선택How to: Choose Collection Methods