Fully featured low overhead profiler for Java EE and Java SE platforms.
Easy-to-use performance and memory .NET profiler for Windows, Linux and macOS.
Secure and easy profiling in cloud, containers and clustered environments.
Performance monitoring and profiling of Jenkins, Bamboo, TeamCity, Gradle, Maven, Ant and JUnit.

Profiler architecture

YourKit Java Profiler consists of two parts interacting via the network: profiler agent and profiler UI.

Profiler architecture

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.

YourKit uses cookies and other tracking technologies to improve your browsing experience on our website, to show you personalized content and targeted ads, to analyze our website traffic, and to understand where our visitors are coming from.

By browsing our website, you consent to our use of cookies and other tracking technologies in accordance with the Privacy Policy.