Intel® VTune™ Profiler Tips for Profiling in Windows*

ID 660520
Updated 3/9/2020
Version Latest



Intel® VTune™ Profiler is a great tool for analyzing applications running in Windows* OS. Some users run into problems caused by incompatible drivers and memory utilization, however. The development team is actively working on improving VTune stability and performance in Windows, and we encourage you to report crashes and problems. In the cases where a fix is not immediately available, there are ways to work around commonly reported problems. 

Known issues are listed in the release notes.

Drivers, Windows Updates, and BSODs

In general, VTune is compatible with Microsoft supported Windows versions, but may be one update behind the latest major version. Depending on the changes in the update, this can cause incompatibility with the VTune drivers, particularly the stack sampling driver for hardware event-based collections. The VTune installer will detect an unsupported OS and fail to install incompatible drivers. While this can prevent hardware event-based sampling and stack collection, other analysis types using user-mode sampling, such as hotspots and threading, can still be run. If VTune is already installed when Windows is updated to an unsupported version, the collection may attempt to use the driver and cause a crash or BSOD.

Tip: After installing the latest major Windows update, uninstall and reinstall the latest version of VTune.

There have also been reports of BSODs caused by a conflict between VTune drivers and some graphics or other third-party drivers. 

Tip: Make sure all drivers are up to date.

GUI Hangs and Crashes

Hangs are most common during symbol resolution in the finalization process. This is generally due to retrieving or processing large .pdb files. If VTune is run from Microsoft Visual Studio*, it will automatically use the VS settings to find symbol files and any additional paths provided in the VTune settings. If VTune uses a symbol server, resolution can be slow if it has to wait for updates. Some .pdb files can be large and take time to resolve.

Tip: If symbols for system libraries are necessary for your analysis, use a local cache instead of a symbol server, such as the location defined for Visual Studio. 

Tip: Remove large pdb files from the symbol location provided to VTune if they are not the focus of your analysis.

Some processes can interfere with VTune collection and finalization, such as virus scanners and synchronization/back-up utilities. Virus scanners can cause problems in the process VTune uses for software-based analysis types, such as threading. Some synchronization utilities can cause finalization to fail if they try to back up a file as VTune is processing it.

Tip: Exclude the pin.exe process from the virus checker, or disable the virus checker while running the VTune collection.

Tip: Pause synchronization and/or back-up utilities until VTune finalization is complete.

Crashes during collection are rare but can happen in some situations. If VTune tries to instrument or attach to a privileged process or service, it might be unable to. 

Tip: Run VTune as administrator for profiling processes with elevated privileges.

You can also configure VTune to profile specific modules in the Advanced section of the What? pane.

Other Tips

VTune Amplifier has a variety of back-end processes and ways to collect data. When one collection method doesn't work, another might. 

Problem: The User-Mode Sampling for Threading analysis is too slow and/or creates too much overhead.
Try: Run the Threading analysis with Hardware Event-Based Sampling and Context Switches enabled instead. This will provide context switch data which is useful for understanding thread behavior.

Problem: I can't run hotspots analysis with Hardware Event-Based Sampling and stacks enabled.
Try: Disable stack collection. To correlate hotspots with stacks, run a separate hotspots analysis with user-mode sampling enabled.

Problem: Attaching to a running process causes a hang or crash.
Try: Launch the application with VTune in a paused state, and resume when the application gets to an area of interest. 

Problem: I'm using the Instrumentation and Tracing Technology (ITT) API, and my collection is crashing.
Try: Create a Custom Analysis and disable the checkbox for Analyze user tasks, events, and counters to see if the API is causing the crash.