- System requirements
- Profiler architecture
- Running the profiler
- Profiler activation
- Start profiling
- IDE integration
- Profile .NET executable
- Profile ASP.NET application IIS
- Profile all .NET processes that will start
- Attach profiler to a running application
- Profile remote applications
- Profiling in Docker container
- Manually enable profiling of local applications
- Startup options
- Connect to profiled application
- Profiling troubleshooting
- Profiling overhead: how to reduce or avoid
- Capturing snapshots
- Solving performance problems
- CPU profiling
- Threads
- 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)
- Filters
- Snapshot directory customization
- Export of profiling results to HTML, CSV, XML, plain text
- Profiler API
- Profiler HTTP API
- Command line tool to control profiling
- Settings
Profile all .NET processes that will start
The following describes profiling of local applications which start indirectly. For example: services, processed are spawned by other processes, etc. If the application executable can be explicitly launched, profile it as a .NET executable instead.
1. Use Profile all .NET processes that will start... action on Welcome screen or in "Profile" menu.

2. The window will appear:

3. Choose profiling options, then press Profile.
4. Start the application which you want to profile, and it will appear on the Welcome screen in "Monitor Applications" list.

5. Click the application to connect.
Turning off the profiling
Profiling will be automatically disabled when the profiler exits, and automatically enabled when the profiler starts again.
To permanently switch it off, invoke the action again and press 'Disable Now':
