What is yourkit java profiler

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.

Products

Источник

Integration with IntelliJ IDEA

CPU and memory profiling has never been easier and smarter at the same time with using YourKit with the IntelliJ IDEA IDE. YourKit Java Profiler brings new functionality to IntelliJ IDEA and adds the ability to profile complex Java EE and desktop applications with just a single click. YourKit Java Profiler adds a new Profile action in all places where you usually find Run or Debug within the IDEA environment.

After installation of the plugin, you’ll see the Profile actions visible in the main toolbar:

IDEA toolbar

IDEA main menu

IDEA popup menu

You can profile any kind of Java application: Java SE, Java EE, WebStart, etc.

To configure the profiler parameters:

  • Open the Run/Debug Configurations dialog.
  • Select the run configuration.
  • IntelliJ IDEA 2020.3 and newer: Click the link Modify options and select the item Profile in the Startup/Connection section of the drop down list. IntelliJ IDEA 2020.2 and older: Select the Startup/Connection tab.
Читайте также:  Html шаблон на тему php

The Profile action starts the profiled application, connects to it the profiler UI (if opposite behavior is not configured). The output of the profiled application appears in the normal IDEA output console the same as it would from the normal Run action within the environment.

IDEA console

To make developer’s life comfortable and easier the YourKit Java Profiler provides quick navigation from profiling results right into IDEA source editor.

Just select a method, class or field in the profiler UI, and then use Tools | Open in IDE (F7) , to open underlying source code in the IDEA editor.

Open declaration

Products

Источник

YourKit Java Profiler features

CPU and memory Java profiling has never been easier, and smarter at the same time. YourKit has developed a revolutionary way to profile Java applications at both development and production stages, bringing unparalleled benefits to Java developers.

Ready for your tasks

Profile all types of Java applications and servers, on multiple platforms, locally and remotely. Investigate performance issues in development, testing and production environments.

Tight integration with your IDE

Plugins for Eclipse, IntelliJ IDEA and NetBeans IDEs offer one-click profiling of all kinds of Java applications, as well as smart navigation from profiling results to source code.

IDE list

Profile remote applications

Profiling a remote application is as easy as the local one. When you need to profile a remote server, the profiler will configure everything.

To start remote profiling you just need an SSH access.

Profile remote app

CPU profiling

YourKit Java Profiler utilizes many JVM and OS features to obtain information about methods and times with the minimum overhead. CPU profiles can be visualized as call trees or lists of hot spots.

Smart what if feature allows you to evaluate performance gains of the supposed optimizations without re-profiling the application.

CPU call tree

Flame graphs

CPU flame graph is an efficient way to visualize application performance, which allows to find performance bottlenecks quickly and easily.

CPU flame graph

Database queries and web requests

Profiler shows slow SQL queries and web requests, to help you find performance bottlenecks.

Popular databases like MongoDB, Cassandra and HBase are supported.

Probes

Memory profiling

Profiler visualizes object heap and allows traversing of object graph in any direction. Objects properties are visualized in convenient form. Profiler chooses the best way to show you a content of a HashMap or a String value.

For each object you can see how much memory it retains, and what happens when particular reference in object graph does not exist. This saves your time, and lets to estimate the expected memory leak fix without changing the code.

Memory profiling

Comparing CPU and memory snapshots

Track how changes in the code affect the performance of your application.

Читайте также:  Data file in java type

YourKit Java Profiler can compare performance and memory snapshots and export comparison reports in different formats.

Snapshot comparison

Performance inspections

40+ comprehensive inspections are waiting to make your code faster and more efficient.

Profiler knows a lot about typical issues in Java applications and automatically finds them. You can easily find leaked webapps, duplicated objects, non-closed SQL statements and streams. Profiler shows inefficient collections and I/O operations.

Inspections

Find thread synchronization issues

YourKit Java Profiler visualizes threads activity. You can easily find blocked threads and understand the reasons.

In the event of a deadlock the profiler will immediately display a warning and provide information about the blocked threads and involved monitors.

It is possible to combine thread states with HTTP requests and SQL queries to get the full picture how the requests are processed by your applications.

Threads

Telemetry and performance charts

The profiler provides a user-friendly and customizable interface for monitoring CPU, memory, GC activity and other performance data.

Performance charts

Exception profiling

Massive exception throwing is a common but often hidden performance problem. YourKit Java Profiler immediately finds all the places where exception are being thrown.

Exceptions

Deobfuscate the code on the fly

YourKit Java Profiler is able to restores original class, method and field names of applications obfuscated with ProGuard, yGuard, Zelix KlassMaster, Allatori, and other popular Java obfuscators. If you are developing a Minecraft mod, just give the profiler your MCP mapping file, and it will show the original names.

You control the overhead

You have full control over the profiling overhead. The profiler provides a fine grained set of options to precisely regulate the amount of data you want to collect. The profiling overhead can be so low, that you will be able to profile your application in the production.

Export to external formats and open API

The profiling results can be exported to numerous formats. You can share the results with colleagues by email, publish them on the web and analysis in third-party applications.

The extensible API allows you to create your own probes and gather application-specific data. You can manage profiling modes, capture snapshots and analyze them right from your Java code.

Command line interface

Command line tools allow to perform many profiling tasks without using the UI. Integrate the profiler into a continuous integration process and automate performance monitoring.

Affordable, permissive licensing

Flexible licensing options allow to select the best license for development teams of any size.

We highly appreciate the open source community and offer free licenses for non-commercial open source projects. There are also special offers for educational and scientific organizations.

Products

Источник

Everything you need to be top notch

YourKit Java Profiler is the leading profiling tool in the Java market that delivers the most innovative, powerful and smart performance analysis capabilities. YourKit Java Profiler provides extreme time savings as well as solid assurance features. Most of its features are not simply unrivaled but absolutely unique.

Читайте также:  Html onclick copy text

Quality

YourKit helps you solve performance and scalability problems at the early stages of development, thus ensuring product quality from the very beginning. The ability to profile Java applications not only during testing but even in production results in substantial increases in the final product quality and the level of customer support.

Time savings

With the unique on-demand profiling, you can run the profiled application with absolutely zero overhead, activating actual profiling only when it is needed. This functionality together with the overall speed of profiling leads to dramatic savings in the developer’s time.

Productivity

YourKit users enjoy massive productivity gains by having all of the advanced YourKit features at hand when they are needed most and by utilizing its seamless integration with the most popular IDEs and application servers.

Higher ROI

Using YourKit Java Profiler ensures quality, boosts productivity and delivers time savings, in the end resulting in higher efficiency and a quick return on your investment. Our flexible licensing policy with multiple bonuses and minimum restrictions has proved to be highly effective and beneficial to our users.

Learn more about the features to find out how YourKit can benefit you.

Products

Источник

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.

Products

Источник

Оцените статью