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

Changes in Version 2022.3

JVM support

  • feature Java 18 supported.

Alpine Linux support

  • feature Native agent for musl-based Linux distributions such as Alpine Linux is now provided. The x86-64 agent library is available as bin/linux-musl-x86-64/libyjpagent.so

    Alpine Linux

Docker support

  • feature ZIP archive with profiler agent binaries now contains agent for Alpine Linux. You can download this archive in your Docker files.
  • feature It is possible to use environment variables in the startup options with the ${VARIABLE} syntax. Substitutions are helpful for options which are not known until execution time, in Docker containers, Kubernetes pods, and in the clustered environments.

Java Flight Recorder support

  • feature The profiler UI can open compressed JFR files.

User interface

  • improvement The startup speed of the UI has been improved.
  • improvement In Threads view, in some case the thread was displayed as running, while it was actually waiting in the native code.
  • improvement keyboard modifier is now used instead of Ctrl to toggle selection in lists on macOS.

CPU profiling

  • feature CPU sampling shows the sample count in addition to time.
    Sample count
  • feature New CPU profiling mode Asynchronous periodic sampling, in which the profiler samples all threads periodically regardless of thread status and is able to measure wall or CPU time according to the settings.
    Asynchronous periodic sampling
  • feature Asynchronous sampling is supported on a wide range of platforms:

    • Linux: x64, x86, ARM 32-bit (ARMv7 and higher, hard-float), ARM 64-bit (AArch64), ppc64le
    • macOS: x64, arm64

    Effectively, the asynchronous sampling mode is available on all supported macOS and Linux architectures except for ppc64 (i.e. big endian).

  • feature CPU sampling settings and CPU tracing settings replace arbitrary wall time filters with the time property specifying whether wall or CPU time is to be recorded.
  • improvement Waiting methods from a hardcoded list are no longer automatically excluded from the profiling results. It was a controversial and non-transparent feature which confused some users. The list of excluded methods could not be modified, it was only possible not to apply it at all by specifying a property in ui.ini.

    Alternatively we recommend measuring CPU time instead of wall time or use the What-If feature to explicitly exclude particular methods from the profiling results.

Memory profiling

  • feature Heap Sampling is the new object allocation recording mode which uses the JVM heap sampling event available in Java 11+ to record objects created after allocating each N bytes on average. Unlike the classic allocation recording controlled with the recordEach and sizeLimit parameters, there is absolutely no profiling overhead for creation of the objects not being recorded.
    Heap sampling
  • improvement Object explorer UI is now responsive even when showing a huge number of objects as configured with the -Dyk.max.objects.to.show=N property.
  • improvement Command line tool received the new command start-alloc-object-counting for starting object allocation recording in the object counting mode.
  • fix "Clear Telemetry" action did not reset total allocated count and size.

IDE integration

  • feature Eclipse 2022-03 supported.
  • feature IntelliJ IDEA 2022.1 supported.
  • feature NetBeans 13 supported.

EE server support

  • feature WebSphere Liberty 22 supported.
  • feature WildFly 26 supported.

Events

  • feature Hibernate 6.0 supported.
  • feature OpenJPA 3.2 supported.

Miscellaneous

  • improvement New agent startup option onexit=hprof has been added to complement the existing options onexit=memory and onexit=snapshot.
  • improvement The profiler agent is now compiled with the options to avoid unnecessarily exported library symbols. This eliminates possible runtime linkage issues and reduces the agent library file size.
  • caveat FreeBSD 32-bit (i386) is no longer supported. Note that FreeBSD 64-bit (amd64) remains a fully supported platform.
  • caveat CPU usage estimation action and view in the "Events" tab, which were deprecated in version 2021.11, have been removed. This feature was confusing and never worked well. In most cases it produced the message "Impossible to estimate". It was hard to even find an event in a snapshot for which this action would give anything else. Please note, that CPU estimation in graphs is a different thing, it's a good feature which remains fully supported.
  • caveat The deprecated profiler API class com.yourkit.controller.Controller has been removed. The profiler API class com.yourkit.api.controller.Controller should be used instead.
  • fix Incorrect error message when activating the profiler without the Internet connection.

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.