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.
async_sampling_cputo start asynchronous sampling from command line.
com.yourkit.api.Controller.startAsyncSamplingCpu(String)to start asynchronous sampling.
java.util.Optional*the value is immediately shown if available, otherwise shown as
UI: persistent object IDs assigned in probes or triggers (see changes in Triggers section) are now more accessible in a memory snapshot:
Memory | (Find) Objects by Persistent IDsearches for objects with particular IDs, or for all objects with the ID assigned.
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.
for on-method-invocation trigger macros
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.
com.yourkit.probes.builtin.DirectoryStreamsreworked to be consistent with other similar probes. Its default activity mode is now Auto.
linux-arm-32for ARM 32-bit (ARMv7 and higher, hard-float) and
linux-arm-64for 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.
skip_advanced_port_checkaffects 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.
com.yourkit.api.Controllerclass were renamed. Methods with old names were deprecated.
"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.
com.yourkit.api.Controllerare scheduled for removal in the next release of YourKit Java Profiler.