- System requirements
- Profiler architecture
- Running the profiler
- Profiler activation
- Start profiling
- Solving performance problems
- CPU profiling
- Threads
- Deadlock detector
- Memory profiling
- Memory telemetry
- Memory snapshot
- Object allocation recording
- Shallow and retained sizes
- Memory views
- 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
- 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?
Values of primitive types
Values of fields and arrays of primitive types (int
, boolean
, double
etc.)
are shown in object explorers:

Also, a text representation in specified encoding can be seen for byte[] in Quick Info.
Values of strings help locating (identifying) a particular object among other objects of the same class. Use Memory | Strings by Pattern... (Ctrl+F) to search for strings, char arrays, and byte arrays, matching given substring or a regular expression.
Primitive values are unavailable in an IBM/OpenJ9 Java heap dump in the Portable Heap Dump format.