- 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
Profiler architecture
YourKit Java Profiler consists of two parts interacting via the network: profiler agent and profiler UI.
Profiler agent
Profiler agent (or simply agent) is a plugin for Java Virtual Machine.
It might be loaded into JVM on startup with help of special command line options
-agentpath
, -agentlib
,
or it might be attached to the running JVM later.
Agent uses operating system APIs, JVMTI and byte code instrumentation to gather the performance data. To communicate with other applications, the agent opens TCP/IP socket and listens for commands on it.
Profiler UI
Profiler UI (or simply UI) is a desktop application. UI can connect to profiler agent to change profiling modes and obtains live performance data. UI is able to save performance data to the snapshots for further off-line analyzes.
Networking
The communication between UI and agent is always performed via SSL encrypted TCP/IP connection. We use only standard protocols and technologies, that allows to proxy the traffic through the HTTPS and SOCKS proxies (Apache, Nginx, Squid, etc). UI is also able to build SSH tunnels to securely reach the agents inside closed private networks.
Thanks to standard protocols and public HTTP API, you can interact with the agent via a web browser or via command-line tools like cURL.