- System requirements
- Profiler architecture
- Running the profiler
- Profiler activation
- Start profiling
- Solving performance problems
- CPU profiling
- Threads
- Deadlock detector
- Memory profiling
- 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
- Automatically capture snapshot on high memory usage
- Capture snapshots periodically
- 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?
Automatically capture snapshot on high memory usage
You can instruct the profiler to automatically capture memory snapshot when used memory reaches the specified threshold.
When used memory constantly increases, this often means there's a memory leak. Based on this concept, this feature greatly simplifies the detection of such situations in e.g. long-running applications such as servers. One of the benefits is that, after being triggered, the feature requires no further human interaction.
Please also consider the ability to dump memory on OutOfMemoryError. The JVM's internal lightweight dumping algorithm is used. This algorithm is specially designed to work in low memory conditions, when the JVM general purpose profiling interface JVMTI used by profilers may fail due to low resources.
To toggle this feature, connect to the profiled application
and click toolbar button.
Use corresponding template menu to add the trigger and actions, then edit parameters if necessary:

Then, if the threshold is reached, a memory snapshot will be created, a notification will be shown in the UI and the feature will deactivate. You can enable it again afterwards.

How to trigger the snapshots from the start
Use startup option usedmem
or
usedmemhprof
.
How to add the trigger with the help of the profiler API
Export the template using corresponding popup menu item,
and pass it to API method
com.yourkit.api.controller.setTriggers()