- System requirements
- Profiler architecture
- Running the profiler
- Profiler activation
- Start profiling
- IDE integration
- Java server integration wizard
- Attach profiler to a running application
- Remote profiling
- Docker
- Enabling profiling manually
- Startup options
- Connect to profiled application
- Profiling troubleshooting
- Profiling overhead: how to reduce or avoid
- 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
- 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?
Connect to profiled application
Once you have profiled application running, you should connect to it to obtain and analyze profiling results.
All detected JVMs are shown in the "Monitor Applications" list on Welcome screen. Connect to the application you want to profile by clicking on its name.

The colored circle indicates the profiler agent status in the Java process. Green circle means the agent has been loaded, and connection will happen immediately. Orange circle means the agent has not been loaded yet, and the profiler will automatically attach the agent before connection.
If you launch the profiled application from an IDE, the profiler UI will automatically start and connect to the application, unless you turned this option off in the IDE plugin.
Local applications are shown under the node with icon.
Applications running on the remote machines are shown under their own nodes with
icon.
To add a new remote machine click
.
See remote profiling from user interface to learn more.
Profiler hides development tools, such as IDEs, in the list by default.
This can be configured by clicking on the icon.
If you do not see your application it the list, please read Profiling troubleshooting. You can use a web browser to check the profiler agent status.
Profiling session
After a connect to profiled application you will be able to control profiling and review an application telemetry.

Toolbar Button | Description |
![]() |
Capture performance snapshot - save the profiling results to a file, for comprehensive analysis |
![]() ![]() ![]() |
Control CPU profiling |
![]() ![]() |
Thread stack telemetry control |
![]() |
Capture memory snapshot |
![]() ![]() ![]() |
Control object allocation recording |
![]() |
Advance object generation |
![]() |
Force garbage collection in the profiled application |
![]() |
Triggers - configure actions automatically performed on events |
![]() ![]() ![]() |
Control monitor profiling |
![]() ![]() ![]() |
Control exception profiling |
![]() |
Clear all telemetry charts |
![]() |
Pause - stop/start receiving data from profiled application |
![]() |
Refresh - immediately receive profiling data from the profiled application and update the views |
![]() |
Transfer snapshots during remote profiling |
You can close the profiling session tab by using File | Close Profiling Session.
You can connect to and disconnect from the profiled application as many times as you wish during its run time.