YourKit Java Profiler features
Award-winning Java profiler
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.
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 only need SSH access.
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.
Flame graphs
CPU flame graph is an efficient way to visualize application performance, which allows to find performance bottlenecks quickly and easily.
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.
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 a particular reference in the object graph does not exist. This saves your time and lets to estimate the expected memory leak fix without changing the code.
Comparing CPU and memory snapshots
Track how changes in the code affect the performance of your application.
YourKit Java Profiler can compare performance and memory snapshots and export comparison reports in different formats.
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.
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 of how the requests are processed by your applications.
Telemetry and performance charts
The profiler provides a user-friendly and customizable interface for monitoring CPU, memory, GC activity and other performance data.
Exception profiling
Massive exception throwing is a common but often hidden performance problem. YourKit Java Profiler immediately finds all the places where exceptions are being thrown.
Deobfuscate the code on the fly
YourKit Java Profiler is able to restore 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 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.