- System requirements
- Profiler architecture
- Running the profiler
- Profiler activation
- Start profiling
- Capturing snapshots
- Solving performance problems
- CPU profiling
- Threads
- Memory profiling
- Memory telemetry
- Object allocation recording
- Shallow and retained sizes
- Memory views
- Objects view
- Class list
- Class and namespace
- Domains and modules
- Object generations
- Shallow size
- Object explorer
- Biggest objects (dominators)
- Allocations
- Merged paths
- Class hierarchy
- Method merged callees view
- Method back traces view
- Quick info view
- GC roots view
- Leak detection: working with paths
- Memory inspections
- Comparing memory snapshots
- Values of primitive types
- Useful actions
- 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
Merged paths
Merged paths view is a tool for examining how objects are retained.
It is especially useful for analyzing objects of classes with a great number of instances, such as
int[]
, System.String
etc.
Merged paths is similar to Paths from GC roots; however, it does not show paths through individual objects, but paths from multiple objects grouped by class.
For example, see the picture below.
It shows that the memory held by Hashtable/bucket[]
instances is mostly retained by
Hashtable
instances, which are in turn retained by
CopyOnWriteHashtable
and BuildItem
.

Another difference between Merged paths and Paths from GC roots is that the merged paths are build on the dominator tree while the paths use the full object reference graph as is. This means that some intermediate nodes seen in Paths from GC roots may be missing in Merged paths for objects which are retained indirectly.