Fully featured low overhead profiler for Java EE and Java SE platforms.
Performance monitoring and profiling of Jenkins, TeamCity, Gradle, Maven, Ant, JUnit and TestNG.
Easy to use performance and memory profiler for .NET framework.

Early Access Program

YourKit Early Access Program (EAP) is the easiest way to get in touch with the latest technologies from YourKit. You can have early access to new products and internal builds.



Your comments, suggestions and bug reports are welcome. In the forum you can discuss product features with YourKit developers and post bug reports.

YourKit Java Profiler 2018.5 EAP

Build #97, released on January 21, 2019

Windowsx86, x64 Download and run installer
macOSIntel Download disk image
x86, x64, ARM, AArch64, ppc, ppc64, ppc64le
Download and unpack ZIP archive
Launch bin/profiler.sh
SolarisSPARC, x86, x64
AIXppc, ppc64
FreeBSDx86, x64

Changes in build 97

  • Event recording with probes: Java persistence (JPA) built-in probes improved
  • IDE integration: IntelliJ IDEA plugin now uses properly scaleable SVG icons. Note: SVG icon format support was introduced in IDEA 2018.1, hence the plugin will keep using bitmap icons in older IDEA versions.
  • Object allocation recording: bug fixed: a race condition could cause a crash

Changes in build 94

  • Bug fixed: profiler UI failed with internal error being started on a machine with invalid font metrics
  • Caveat: snapshot file annotation is no longer offered for .hprof snapshots, only for the profiler-format .snapshot files. The HPROF format does not allow arbitrary records, and extending a .hprof file with custom records would make it invalid for 3rd party tools.
  • Other bug fixes

Changes in build 90

  • IDE integration: Apache NetBeans 10 supported
  • IDE integration: MyEclipse CI 2018.12 supported
  • Command line tool: new command start-alloc-recording starts object allocation recording with custom record-each and size-limit parameters.

Changes in build 87

  • Better support of HiDPI screens on Linux

Changes in build 86

  • Bug fixes

Changes in build 85

  • New profiler API methods com.yourkit.api.Controller.getTotalCreatedObjectCount() and com.yourkit.api.Controller.getTotalCreatedObjectSize() provide basic object allocation recording statistics. The same values can also be obtained with the command line tool's new commands print-alloc-object-count and print-alloc-object-size.
  • Bug fixes

Changes in build 83

  • Critical UI bug fixed: multiple internal error dialogs on attempt to start profiling or some other operations.

Changes in build 82

  • Bug fixes

Changes in build 68

  • Attach mode: bug fixes

Changes in build 63

  • Console wizards: bug fixed: internal diagnostic messages were printed to the console instead of being written to the log
  • Attach mode: improved handling of Java 11

Changes in build 56

  • Java 11 is supported
  • IBM's AdoptOpenJDK.net OpenJDK builds based on the Eclipse OpenJ9 VM as well as on HotSpot are supported. We support all Java versions available at AdoptOpenJDK.net, which at the moment are Java 8, Java 9, Java 10, Java 11.
  • Attach mode, i.e. the ability to profile a running JVM instance started without the profiler agent, has been supported for IBM Java based on the Eclipse OpenJ9 VM. This JVM powers the latest IBM Java 8 builds, as well as IBM OpenJDK 8/9/10/11 available at AdoptOpenJDK.net.
  • Memory profiling: object allocation recording: added support of the new Java profiling capability called heap sampling, which was introduced in Java 11 via JEP 331. The heap sampling provides a new JVM event (JVMTI function) to record allocated objects without using bytecode instrumentation.

    Not instrumenting bytecode for object allocation recording reduces class load time and size of the resulting bytecode.

    Also, this new approach is extremely useful in the attach mode, because it totally eliminates the pause on a first attempt to start object allocation recording, which is associated with instrumenting classes loaded before the agent attached.

    By default, the heap sampling event is used instead of bytecode instrumentation whenever available, that is, on Java 11 and newer. To use bytecode instrumentation instead, please specify the agent startup option disable_heap_sampling.

  • Memory profiling: when the profiler opens a memory snapshot, the dominator tree computing is now by default performed inside the profiler UI process. Previously, an external process would always be launched for the dominator tree computing. The old behavior can be reverted by specifying the property -Dyk.dc.external-process=true in <user home>/.yjp/ui.ini.

    The external process approach was introduced many years ago and was intended to help loading memory snapshots to the profiler UI running on a 32-bit JVM, then-mainstream, with essentially limited address space. Currently, the profiler UI requires a 64-bit JVM to run, thus launching the external process no longer makes sense.

    Another drawback of the old approach was that some antivirus programs might raise a false alarm for such external process and prevent it from launching, hence the snapshot failed to open.

  • Event recording with probes: com.yourkit.probes.builtin.Databases probe overhead significantly reduced for some loads
  • Improvement: the profiler UI now shows time in 12 hour (AM/PM) or 24 hour format depending on the system settings
  • Improvement: Welcome screen: streamlined agent statuses in regard to the agent attachability. A process without the agent loaded is no longer indicated with the "ready to attach" status, because it cannot be reliably determined until attach is actually performed. Instead, the UI now allows an attempt to attach to any process, which will either succeed or show an error message.
  • Improvement: free form snapshot annotation is now easily accessible in the recent snapshot list, as well as in the "Open Snapshot" dialog.
  • Local network address resolution was improved to properly handle machines with misconfigured or absent "localhost" host name.
  • "Open Snapshot" dialog now shows and allows to open a snapshot stored in a GZIP (.gz) or ZIP (.zip) archive
  • Monitor profiling: bug fixed: live view is updated properly, without unneeded expands/collapses
  • Bug fixed: Summary tab: no properties retrieved for HPROF dumps of Java 10+
  • Improvement: Horizontal scrolling with two fingers gesture now works on Windows.
  • Bug fixed: wrong tooltip position in "Open Snapshot" dialog
  • Bug fixed: permanent, non-closable tooltip in "Threads" view after applying thread name filter
  • Bug fixed: toolbar panel button visual bug on attempt to start CPU tracing or allocations recording if they are disabled
  • Bug fixed: menu separator with text does not look like a separator
  • Caveat: the profiler UI now requires a 64-bit JVM to run. Also, the API to programmatically open memory snapshots requires a 64-bit Java too. Please note that profiling of both 32-bit and 64-bit JVMs is still fully supported, and the console wizards (Java EE server integration, attach) can run on either 32-bit or 64-bit JVM.
  • Caveat: due to low demand and significant resources required to build, test and maintain, the following platforms are now considered advanced: AIX, HP-UX, Solaris, Linux PPC. This means that connecting the profiler UI to a JVM running on such platform, or opening or exporting a snapshot captured on such platform now requires a license with advanced support. Few people use these platforms nowadays, but the cost of supporting them is significant. We seek to at least partially compensate it, and keep these platforms supported as long as it practicable.