- 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
- 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
- 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?
Object generations
Generation view distributes objects by time of their creation, and is helpful in finding memory leaks and performing other analyses of how heap content evolves over time.
When an object is created, it is associated with the current generation number. The generations are sequentially numbered starting from 1. The current generation number is automatically advanced on capturing memory snapshot. It can also be explicitly advanced with the help of Advance Object Generation Number toolbar button, as well as via API and triggers.

The generation represents an object's age: the smaller the generation number, the older the object. See how to use object generations in typical memory leak detection scenario.

Actions
To see the generation of a single object, use Quick Info:
