User Guide

Intel® VTune™ Profiler User Guide

ID 766319
Date 3/31/2023
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

Windows Store Application Targets

Intel® VTune™ Profiler supports a hardware event-based sampling analysis for Windows Store C/C++, C# and JavaScript applications running via the Attach to Process and Profile System modes. The Launch Application mode is not supported.

Before analysis make sure you have administrative privileges to run the data collection.

Support Limitations for Windows Store C# Application Analysis

Starting from Microsoft Windows 8*, all Windows Store C# applications are automatically pre-compiled with the NGEN service during each 24 hours. VTune Profiler cannot resolve Native Image methods since symbol information for these methods is absent. As a result, when you profile a pre-compiled application with the VTune Profiler, you have [unknown] function entries instead of C# methods. You can either generate .pdb files for native images via the Ngen.exe tool or temporarily workaround this problem until the next automatic NGEN pre-compilation:

  1. Locate automatically pre-compiled assemblies. Typically 32-bit assemblies are located in C:\Users\Administrator\AppData\Local\Packages\<package>\AC\Microsoft\CLR_v4.0_32\NativeImages\ and 64-bit assemblies are located in C:\Users\Administrator\AppData\Local\Packages\<package>\AC\Microsoft\CLR_v4.0_32\NativeImages\ folders.

    NOTE:

    <package> varies with applications. To identify the package, use any of the following options:

    • Open the Task Manager and check the properties for your application. The General tab contains the package value including the version that should be omitted. For example, if the General tab displays 47828<app_name>_1.0.0.4_neutral__sgvg9sxsmbbt4, then NGEN'ed modules are located in C:\Users\Administrator\AppData\Local\Packages\47828<app_name>_sgvg9sxsmbbt4\AC\Microsoft\CLR_v4.0_32\NativeImages\.

    • Use the Process Explorer tool: explore the list of modules loaded in the application, find *.ni.exe modules and get their location.

  2. Rename the folders that include *.ni.dll or *.ni.exe. For example, rename C:\Users\Administrator\AppData\Local\Packages\47828<app_name>_sgvg9sxsmbbt4\AC\Microsoft\CLR_v4.0_32\NativeImages\<app_name> to C:\Users\Administrator\AppData\Local\Packages\47828<app_name>_sgvg9sxsmbbt4\AC\Microsoft\CLR_v4.0_32\NativeImages\<app_name>.

  3. Re-start your application.

    CLR JIT-compiles the methods. You can use the VTune Profiler to profile your C# application until the next automatic NGEN pre-compilation.

    NOTE:

    This workaround is not recommended for .NET* Framework libraries (for example, mscorlib.dll).

Support Limitations for Windows Store JavaScript Application Analysis

VTune Profiler supports mapping to the source file for JavaScript modules. But when you dive to the source from the grid or Timeline pane, the VTune Profiler does not locate the most performance-critical code line by default but opens the first line of the function in the Source pane. Use the navigation buttons to switch between hot code lines.