- System requirements
- Running the profiler
- Profiler activation
- Start profiling
- Connect to profiled application
- Capturing snapshots
- Solving performance problems
- CPU profiling
- Memory profiling
- Garbage collection
- Exception profiling
- Probes: monitor higher level events
- Performance Charts
- Inspections: automatic recognition of typical problems
- Automatically trigger actions on event
- Summary, snapshot annotation, automatic deobfuscation
- Time measurement (CPU time, wall time)
- Snapshot directory customization
- Export of profiling results to HTML, CSV, XML, plain text
- Profiler API
- Command line tool to control profiling
Much useful profiling information is available in the live views when the profiler is connected to a profiled application.
However, to use all analysis capabilities the profiler provides, a snapshot should be captured, i.e. the collected profiling data written to a file.
The snapshot files have extension
are created in the snapshot directory.
To capture a performance snapshot, connect to the profiled application and use corresponding toolbar button:
Snapshots can also be captured automatically using:
Memory vs performance snapshots
Memory snapshots contain the memory state of the profiled application at the moment it was captured. It contains information about all loaded classes, about all existing objects, and about references between objects.
The heap is necessary for comprehensive memory profiling. If you need that information, capture memory snapshot:
Performance snapshot will contain all the same information as a memory snapshot except for the detail on individual objects in the heap.
Note: snapshots captured on exit are always performance snapshots due to a technical reason: capturing a memory snapshot requires to force garbage collection which is not possible when the CLR is being shut down.