- System requirements
- Profiler architecture
- 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
- Profiler HTTP API
- Command line tool to control profiling
Excessive garbage allocation
How to find excessive garbage allocation?
Purpose: Reduce time that garbage collector spends on collecting temporary objects.
- Run application with the profiler
- Connect to application.
- Garbage collection telemetry will help you estimate garbage collector load.
If garbage collection takes a significant amount of time, it is advised to profile memory allocation to pin-point and optimize the problematic code.
Let us assume there is a task in your application that you want to profile.
- Start object allocation recording with default settings right before the task is started.
- Wait until the task finishes or performs long enough.
- Capture memory snapshot and stop object allocation recording.
- Open snapshot and use Garbage Collection view.