This article lists requirements, limitations and tricks about profiling .NET and Windows Store applications using Intel® VTune™ Amplifier. This is a compilation of issues and limitations described in VTune Amplifier product help and release notes for user convenience.
Supported .NET versions
VTune Amplifier fully supports .NET* versions 3.5 and below.
There are limitations for .NET 4.0 and higher: analysis types “Locks and Waits” and “Concurrency” can’t detect synchronization primitives from Task Parallel Library classes and algorithms in the System.Threading.Tasks namespace.
Supported analysis types and modes
General .NET managed runtime processes
VTune Amplifier analysis type | VTune Amplifier Target type | ||
Launch application | Attach to process | Profile System | |
Event-based Sampling (EBS) | yes | no | no |
User-mode sampling and tracing | yes | yes | no |
Windows Store C/C++, C# and JavaScript applications
VTune Amplifier analysis type | VTune Amplifier Target type | ||
Launch application | Attach to process | Profile System | |
Event-based Sampling (EBS) | no | yes | Yes |
User-mode sampling and tracing | no | no | no |
User ITT (Instrumentation and Tracing Technology) APIs support
The ITT APIs are a set of pure C/C++ functions. There are no Java or .NET APIs. If you need runtime environment support, you can use a JNI, or C/C++ function call from the managed code.
Analysis workflow and instructions
.NET* Code analysis
Refer to the .NET* Code Analysis help topic.
Windows Store Applications analysis
Refer to the Windows Store Applications Analysis help topic.
Windows Services analysis
Refer to the Profiling Windows Services article.
Web application (hosted on server) analysis
If you profile an application running on IIS via a web browser, you should set Managed code profiling mode in the VTune Amplifier project properties to “Mixed” to enable such collection. For more details, see the .NET* Code Analysis help topic.
Analyzing a native application that calls managed code
You should set Managed code profiling mode in the VTune Amplifier project properties to “Mixed” to enable such a collection. For more details, see the .NET* Code Analysis help topic.
Symbol resolution issues
.NET modules loaded dynamically via Reflection API are displayed as "unknown" hotspots (200088121)
If dynamic .NET modules (e.g. loaded via Assembly.LoadFrom) are used in the target application, VTune Amplifier will show them as "unknown" functions and modules in hotspots list.
VTune Amplifier doesn’t resolve symbols for .NET applications using NGEN (200248497)
Symbol resolution is not supported for .NET applications built using Native Image Generator (NGEN) if results are collected using Event Based Sampling analysis types. You can find details how to resolve it in “Windows Store Applications Analysis” topic of VTune help document.
Analysis of the .NET application that performs security checks based on a known public key
Cause: if your .NET application performs security checks based on a known public key (for example, checks whether its assemblies are strong-name signed), it may either crash when launched by the VTune Amplifier or display only native modules in the results.
Solution: this is a third-party technology limitation. To work around this issue, you are recommended to disable the security check for any of the user-mode sampling and tracing analysis types.