- System requirements
- Profiler architecture
- Running the profiler
- Profiler activation
- Running applications with the profiler
- Connect to profiled application
- Troubleshoot connection problems
- Solving performance problems
- CPU profiling
- Threads
- Deadlock detector
- Memory profiling
- Memory telemetry
- Memory snapshot
- Object allocation recording
- Shallow and retained sizes
- Memory views
- Objects view
- Class list
- Class and package
- Class loaders
- Web applications
- Object generations
- Reachability scopes
- Shallow size
- Object explorer
- Biggest objects (dominators)
- Allocations
- Object ages
- 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
- Support of HPROF format snapshots
- Support of Java Flight Recorder (JFR)
- Support of Portable Heap Dumps (.phd)
- Values of primitive types
- Persistent object IDs
- Useful actions
- Set description language
- Garbage collection
- Monitor profiling
- Exception profiling
- Probes: monitor events of various kinds
- Performance Charts
- Inspections: automatic recognition of typical problems
- Automatically trigger actions on event
- Summary, snapshot annotation, automatic deobfuscation
- IDE integration
- Time measurement (CPU time, wall time)
- Filters
- Snapshot directory customization
- Export of profiling results to HTML, CSV, XML, plain text
- Profiler Java API
- Profiler HTTP API
- Command line tool to control profiling
- Settings
- FAQ: How to profile in my scenario?
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.
- Memory | Predefined Set... opens objects that belong to one of sets specified in Settings | Sets of Objects....
There are different views:
-
Objects by category:
Class list - examine how memory is distributed among instances of different classes
Class and package - similar to the Class list, but classes are grouped by package
Class loaders - distribute objects by class loader
Web applications - distribute objects by web application
Generations - distribute objects by time of their creation
Reachability - shows objects distributed according to how/whether they are reachable from GC roots
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
Object ages - distribute objects by how long they exist
-
Other views (available as dependent views only):
Merged paths - examine how objects are retained
Class hierarchy - shows super and derived classes