YourKit Java Profiler
YourKit Java Profiler


YourKit Java Profiler free download for Mac

YourKit Java Profiler

01 August 2019

Profiling tool specially designed for Java developers.


YourKit Java Profiler is a reliable profiling tool specially designed for Java developers that need a fully featured CPU and memory profiling app.

Advanced CPU and memory profiling utility for all Java developers

Thanks to YourKit Java Profiler’s powerful analysis capabilities, you can determine CPU and memory hot spots, make comparisons, detect memory leaks, generate memory distribution reports and measure the shallow and retained size of objects.

What is more, the On-demand profiling feature offers you the power to enable profiling only when you need it and keep the application running at full power for the rest of the time. Hence, you can check the current heap state at any given moment by capturing memory snapshots.

Quick and easy installation

To start using YourKit Java Profiler, you just have to download the light archive and extract the application to a location of your choice. Moreover, YourKit Java Profiler seamlessly integrates with most popular IDEs and application servers.

YourKit Java Profiler comes with a user-oriented interface with support for keyboard shortcuts and report filtering for instant and in-depth analysis. The top toolbar helps you capture performance snapshot, initiate or stop the CPU profiling, clear all CPU profiling results, disable Stack telemetry, capture memory snapshots, start memory allocation recording and more.

Detailed graphs and handy filtering options

You also have the power to setup a number of actions that can be triggered by various events, such as high CPU or memory usage or the execution of a given method. The graphs generated in the CPU, Threads and Memory tabs, as well as those from the Garbage Collection and Performance Carts tab are updated in real time.

As follows, you can effortlessly monitor CPU usage, thread count, heap memory, non-heap memory, loaded classes, along with the minor and major collections.

What's new in YourKit Java Profiler

Version 2019.8 (build 108):

Note: To get a free 15 days evaluation license key for a fully functional version of the profiler, start the profiler and in the Enter License Key dialog that will appear click Get Free Evaluation Key.

CPU profiling:
  • CPU flame graph. It is a new way to visualize entire application call tree, which allows to find performance bottlenecks quickly and easily. Execution paths which consume most of the CPU time are wider and more visible on the graph.
  • Asynchronous sampling. It is a highly requested CPU profiling mode, which provides much better accuracy of collected stack traces. It uses an experimental HotSpot API and system CPU timers. This mode is available only on macOS, Linux x86, Linux x64.
  • Startup options: new option async_sampling_cpu to start asynchronous sampling from command line.
  • Profiler API: new method com.yourkit.api.Controller.startAsyncSamplingCpu(String) to start asynchronous sampling.
  • Command line tool: new command start-async-sampling-cpu.
  • Sampling accuracy significantly improved, especially when measuring with wall time.
  • Bug fixed: call counting might not work in Java 9+.
Memory profiling:
  • UI: object explorer: class-specific object presentation: for instances of java.util.Optional* the value is immediately shown if available, otherwise shown as Empty.
  • UI: persistent object IDs assigned in probes or triggers (see changes in Triggers section) are now more accessible in a memory snapshot
  • persistent object ID is shown in Object explorer, if available;
  • new action Memory | (Find) Objects by Persistent ID searches for objects with particular IDs, or for all objects with the ID assigned.
  • Bug fixed: allocated object counting might not work in Java 9+.
JVM support:
  • Deprecated in version 2019.1 Java 6 support has been discontinued. Therefore, YourKit Java Profiler 2019.1 is the last version supporting Java 6.
  • OpenJ9 JVMs are now visible in application table on Linux and macOS.
  • Remote attach to OpenJ9 JVM is improved.
IDE integration:
  • Eclipse: supported "Jetty Webapp" run configuration for Eclipse Jetty Plugin.
  • Eclipse 2019-06 (4.12) is supported.
  • IntelliJ IDEA 2019.2 is supported.
  • MyEclipse CI 2019.4 is supported.
User interface:
  • Extract Performance Snapshot is now accessible in the recent snapshot list.
  • Navigation drawer has been modernized to improve usability and look. As the result, profiling status is now visible at the header. Drawer is vertically scrollable. And you can also collapse it horizontally to give more space to other views with profiling results.
  • Copy File Path is now available in the "Open Snapshot" dialog.
  • New trigger action StartAsyncSamplingCpu.
  • New parameter PERSISTENT_ID for on-method-invocation trigger macros THIS, PARAMS and RETURN_VALUE available in Print* actions helps identify involved objects by assigning and reporting their persistent IDs.
  • The IDs can be seen and searched for in a memory snapshot. See changes in Memory profiling for detail.
  • Some trigger actions have been renamed.
Probes and inspections:
  • Built-in probe com.yourkit.probes.builtin.DirectoryStreams reworked to be consistent with other similar probes. Its default activity mode is now Auto.
  • New inspection Not closed directory streams has been implemented. The inspection finds and reports directory streams that have not been closed so far, because non-closed streams is a resource leak.
  • Attach mode: improved responsiveness and reliability.
  • Attach mode: supported on AIX for Java 8+ HotSpot and OpenJ9 JVMs.
  • Linux ARM agent directory names have been changed to linux-arm-32 for ARM 32-bit (ARMv7 and higher, hard-float) and linux-arm-64 for ARM 64-bit (AArch64). Linux ARM soft-float is no longer supported.
  • Automatic deobfuscation: Profiler supports deobfuscation of MCP mapping widely used in Minecraft mod development.
  • New agent startup option skip_advanced_port_check affects the profiler agent port availability checks. When this option is specified, the agent does not explicitly reject ports used by other currently running profiled processes. Instead, the agent port availability is proved only by actually opening it. This option is useful in special environments such as Kubernetes, where PID reuse is possible. See this forum thread for detail.
  • API: caveat: a number of profiler API methods in com.yourkit.api.Controller class were renamed. Methods with old names were deprecated.
  • Snapshot comparison: bug fixed: exception difference was not available if the "Exceptions" tab has not been selected at least once in the both snapshots being compared before using the comparison action
  • "Deprecation" means that we intend to remove the feature or capability from a future release of YourKit Java Profiler. The feature or capability will continue to work and is fully supported until it is officially removed.
  • Deprecated methods from com.yourkit.api.Controller are scheduled for removal in the next release of YourKit Java Profiler.

Join over 500,000 subscribers.

Subscribe for our newsletter with best Mac offers from MacUpdate.

0 YourKit Java Profiler Reviews

Rate this app: