- 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
Objects view
The objects view allows you to comprehensively examine objects in a memory snapshot.
When a memory snapshot opens, the Memory tab is shown automatically and represents all objects.
You can also open it for a subset of objects:
- Memory | Selected Objects (F4) works in any memory view if selection represents live objects.
- Memory | Instances by Class... (Ctrl+N) opens all instances of a class by its name.
- Memory | Strings by Pattern... (Ctrl+F) opens instances of strings, char arrays or byte arrays that match given text pattern.
There are different views:
-
Objects by category:
Class list - examine how memory is distributed among instances of different classes
Class and namespace - similar to the Class list, but classes are grouped by namespace
Modules - distribute objects by module
Generations - distribute objects by garbage collector generations
Shallow size - shows objects distributed according to their shallow size range
-
Individual objects:
Object explorer - browse individual objects
Biggest objects - find individual objects that retain most of memory
-
Allocation recording results:
Allocations - explore methods where objects were created
-
Other views (available as dependent views only):
Merged paths - examine how objects are retained
Class hierarchy - shows super and derived classes