Export (0) Print
Expand All
This topic has not yet been rated - Rate this topic

Understanding Instrumentation Data Values in Profiling Tools

The instrumentation profiling method of the Visual Studio records detailed timing information for the function calls, lines, and instructions in the profiled application

Requirements

  • Visual Studio Ultimate, Visual Studio Premium, Visual 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 Ultimate, Visual Studio Premium, Visual 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).

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.

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.

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.

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.

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.

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 * Function Elapsed Inclusive / Session Elapsed Inclusive

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 * Function Elapsed Exclusive / Session Elapsed Inclusive

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 * Function Application Inclusive / Session Application Inclusive

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 * Function Application Exclusive / Session Application Inclusive

Did you find this helpful?
(1500 characters remaining)
Thank you for your feedback
Show:
© 2014 Microsoft. All rights reserved.