- 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
Monitor profiling
Goals of monitor profiling
Monitor profiling helps you analyze synchronization issues, including:
- which threads were calling wait(), and for how long
- which threads were blocked on attempt to acquire a monitor held by another thread (synchronized methods/blocks), and for how long
The times are measured as wall time.
Controlling monitor profiling
Profiler UI
When the profiler is connected to the profiled application, the toolbar contains the following monitor profiling controls:
Toolbar Button | Description |
![]() ![]() |
Start/Stop monitor profiling. |
![]() |
Clear monitor profiling results. |
When monitor profiling is started, previous results are cleared automatically.
Agent startup options
Monitor profiling is not started by default.
To launch an application with monitor profiling started, specify
monitors
startup option.
HTTP API
For users requiring remote control or automation within their profiling workflows, YourKit Java Profiler offers control over the monitor profiling through HTTP API endpoints. The documentation outlines startMonitorProfiling, stopMonitorProfiling and resetMonitorProfiling methods available for this purpose.
Java API
The YourKit Java Profiler also provides a
Java API
for deep integration with Java applications.
The com.yourkit.api.controller.v2.Controller
includes methods for starting,
stopping, and resetting the monitor profiling, similar to the toolbar buttons.
Monitors tab
Monitor profiling results can be analyzed from different perspectives:
- as a Wait tree - All threads merged, with method wait times and counts in a single call tree.
- as a Wait tree - By thread, with method wait times and counts in call trees grouped by individual threads.
- as a Flame graph of waiting methods.
- grouped by monitor Owner thread.
- grouped by monitor Monitor class.