- System requirements
- Profiler architecture
- Profiler installation
- Uninstall profiler
- Running the profiler
- Profiler activation
- Welcome screen
- Start profiling
- Profiling overhead
- Snapshots
- Solving performance problems
- CPU profiling
- Thread profiling
- Virtual threads support
- Object allocation profiling
- Memory profiling
- Monitor profiling
- Exception profiling
- Telemetry
- Probes: monitor events of various kinds
- Inspections: automatic recognition of typical problems
- Automatically trigger actions on event
- Automatic deobfuscation
- Summary
- Filters
- Profiler command line
- Export of profiling results to external formats
- Profiler Java API
- Profiler HTTP API
- Settings
- Troubleshooting and FAQ
Group objects by category
Analyzing Java memory snapshots can be a daunting task due to the vast amount of objects and data involved. Grouping objects by various categories can make it easier to identify memory issues like leaks or high utilization. Here is how you can categorize objects in a Java memory snapshot:
Group by class
Grouping objects by their classes allows you to see which classes occupy the most memory.
Group by class and package
Grouping objects by their classes and packages provides a logical structure that's easy to navigate.
Group by class loader
Java uses different class loaders for different parts of an application. Grouping objects by class loaders can help identify if a particular module is consuming too much memory.
Group by generation
Grouping objects by their generation can indicate how long objects are lingering in memory.
Group by reachability scope
Grouping objects by their reachability scope (e.g., strongly reachable, softly reachable, etc.) helps to identify potential leaks or optimization opportunities.
Group by shallow size
Shallow size is the amount of memory directly allocated for each object. Grouping by shallow size helps you find objects that are individually large.