.NET* Code Analysis

Intel® VTune™ Amplifier automatically identifies the type of the code based on the debugger type specified in the project property pages:

VTune Amplifier inherits this setting to set the profiling mode for the analysis target. The following types are possible:

  • Native mode collects data on native code only, does not attribute data to managed source.

  • Managed mode collects everything, resolves samples attributed to native code, attributes data to managed source only. The call stack in the analysis result displays data for managed code only.

  • Mixed collects everything and attributes data to managed source where appropriate. Consider using this option when analyzing a native executable that makes calls to the managed code.

  • Auto mode automatically detects the type of target executable, managed or native, and switches to the corresponding mode.

If you analyze a .NET application, the VTune Amplifier resolves the Auto mode to Mixed. If you analyze a native application that calls managed code, the VTune Amplifier resolves the Auto mode to Native and does not profile managed code. In this case, if you want to enable the VTune Amplifier to profile the managed code called from the native application, set the profiling mode to Mixed as follows:

  1. Click the Project Properties button on the toolbar.

    The Project Properties dialog box opens with the Target tab active.

  2. De-select the Inherit settings from Visual Studio* project check box.

    The Managed code profiling mode option is enabled.

  3. From the Managed code profiling mode menu, select the required profiling mode.

Note

Attaching to managed runtime processes is supported only for user-mode sampling and tracing analysis types. System-wide profiling is not supported for managed code.

Example 1: Performance results for the native application calling managed code in the Mixed mode

In the example below, the VTune Amplifier uses the Mixed mode for the native application calling managed code. Setting the Call Stack Mode option to User/system functions (highlighted below) provides full stack data on system (greyed-out in the Call Stack pane) and user functions.

Example 2: Performance results for the native application calling managed code in the Native mode (default)

In the example below, the Native mode is used and the VTune Amplifier does not analyze the managed code called from the native executable (the same as in example 1) and displays it as [Unknown stack frames].

For more complete information about compiler optimizations, see our Optimization Notice.