- System requirements
- Profiler architecture
- Profiler installation
- Uninstall profiler
- Running the profiler
- Profiler activation
- Welcome screen
- Start profiling
- Profiling overhead
- Snapshots
- Solving performance problems
- CPU profiling
- Thread profiling
- Object allocation profiling
- Memory profiling
- Exception profiling
- Telemetry
- Probes: monitor higher level events
- Inspections: automatic recognition of typical problems
- Automatically trigger actions on event
- Automatic deobfuscation
- Summary, automatic deobfuscation
- Filters
- Profiler command line
- Command line tool to control profiling
- Export of profiling results to external formats
- Profiler .NET API
- Profiler HTTP API
- Settings
- Troubleshooting
Solving performance problems
What performance problems may arise?
- Application algorithms are usually not optimal, which leads to performance bottlenecks.
- For memory-related issues see below.
Why memory-related issues can cause performance problems?
Memory-related issues can affect an application's execution speed and stability:
-
When CLR cannot allocate an object (because it is out
of memory, and no more memory can be freed by the garbage collector),
OutOfMemoryError
is thrown, which can cause an application crash or further unstable operation. - An application that uses a lot of memory reduces available physical memory for itself and other programs, and thus forces the operating system to swap memory pages to and from the disk more frequently. This leads to serious overall system performance degradation.
- CLR spends more time to perform garbage collection when more objects exist and more temporary objects are created.
Read more about memory-related problems:
- Application uses more memory than it should
- Memory leaks
- Excessive garbage allocation, i.e. application creates a lot of temporary objects