- Running the profiler
- Profiler activation
- Running applications with the profiler
- Connect to profiled application
- Troubleshoot connection problems
- Solving performance problems
- CPU profiling
- 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
- IDE integration
- Time measurement (CPU time, wall time)
- Snapshot directory customization
- Export of profiling results to HTML, CSV, XML, plain text
- Profiler API
- Command line tool to control profiling
- FAQ: How to profile in my scenario?
Troubleshoot connection problems
If the profiled Java application is missing in "Monitor Applications" list:
Application is not running
Ensure the application you want to profile is running. Restart the application if has been shut down. If the application fails to start or terminates abnormally, check the application's output, logs etc. for possible errors.
Application is running without the profiler agent
If you run your application with custom Java launcher, please always start it with profiler agent. Profiler will automatically detect
javaw.exe, but processes with different names might be missing.
If you run your application and profiler UI on the same machine but under different users, please run an application and UI under the same user or start your application with profiler agent. Java applications running under different user might be missing.
Start your application with profiler agent and connect to it when it is running.
Application is already running with the profiler agent
Ensure that startup option 'listen' is properly configured.
By default, for security reasons the profiler agent binds the socket only to
localhostthat might resolve to
::1. This disables a direct remote connection to the agent via
host:port, but connection is still possible via port forwarding e.g. an SSH tunnel.
If you want to allow direct connect to the remote application via host and port, you should specify the startup option
If the application is up and running, ensure that the network connection is not blocked by a firewall, an antivirus etc.
Check both the remote machine side and the local machine side. The profiler agent port must be allowed.
Note: the profiler agent port is not one of the ports you may use to communicate with the profiled application or server, like HTTP 8080. Instead, it's a special dedicated port used solely by the profiler.
By default, the profiler agent port is allocated in the range 10001-10010 or a random one is used if all ports in this range are busy. The port can also be specified explicitly with the startup option 'port'. If the profiler agent port is not in the default range 10001-10010, explicitly specify the port in the connect dialog as
If you are unsure which port is used, look at the profiler agent log on the remote machine. The profiler agent log file is
<user home>/.yjp/log/<session name>-<PID>.log, where
<user home>corresponds to the account under which the profiled application is started.
If you are uncertain about the log file path, you may find it in the profiler agent's output to stderr:
[YourKit Java Profiler <version>] Loaded. Log file: <full path to the log file>
Version 8.0.x and older agents didn't create a log file, hence the port was printed directly to stderr:
[YourKit Java Profiler <version>] Profiler agent is listening on port <port number>...
Check agent status in a web browser
The profiler agent status can be checked by opening
http://localhost:<agent port> for a local profiled application
http://<remote host>:<agent port> for a remote profiled application
in a web browser.
The remote application status can be checked this way only if a direct connection to the agent port was allowed with the help of the agent startup option listen.
The shown page resembles the content of the Summary tab in the profiler UI plus provides detail on currently active profiling modes.