Changes in YourKit Java Profiler 2025.9
- JVM support
- Windows support
- Java Flight Recorder support
- YourKit Connection Broker
- Security
- User interface
- Thread profiling
- Object allocation profiling
- IDE integration
- EE server support
- Profiler API
- Triggers
- Miscellaneous
- Deprecations
JVM support
- feature Java 25 is supported.
-
improvement
The agent code was refactored to comply with
JEP 471 and
JEP 498.
The profiler no longer relies on
java.misc.Unsafe, so there will be no warnings or crashes when running with Java 26. - improvement The agent can now instrument Java classes at very early stages of JVM startup. This provides more complete results for tracing, call counting, and allocation profiling.
Windows support
- feature The uninstaller is now digitally signed.
Java Flight Recorder support
-
feature In this version, Java Flight Recorder support has been completely reworked. YourKit Java Profiler can now not only open any JFR snapshots, but also control JFR event recording. The profiler now offers complete JFR controller functionality as a built-in feature.
-
feature Added the ability to capture JFR snapshots and download them from remote machines. Works the same way as with native YourKit snapshots, including automatic download and opening.
-
feature The internal engine for loading and presenting JFR events has been reimplemented. It can efficiently process and display millions of JFR events. There are no artificial limits on the number of events, unlike in some other JFR-supporting tools.
-
feature
There are new profiler agent options
jfr=on|off,jfr_config_nameand,jfr_max_sizeto configure flight recording from the agent command line. -
feature
Added the
on_exit=jfroption to automatically capture JFR snapshots on JVM exit. - fix Fixed an issue where opening a JFR snapshot showed no methods and no call trees.
- fix Fixed issues with sorting and rendering of certain JFR event types.
- fix Fixed a crash when opening JFR snapshots from IBM Java.
YourKit Connection Broker
-
feature You can now control Java Flight Recorder directly from the web browser on the Application properties page.
Security
-
improvement
The profiler agent now rejects cross-site HTTP requests with the
header
Sec-Fetch-Site: cross-site. This is not a vulnerability by itself, but blocking such requests improves overall security. Cross-site requests can originate only from a web browser executing specially crafted web pages that send API requests (via JavaScript) to the YourKit agent running onlocalhost.
User interface
- improvement Improved detection of insufficient native memory during dominator calculation. The profiler now provides more detailed workaround suggestions in such cases.
- fix Fixed an issue where the first selected row in a table could change after the table was updated.
Thread profiling
-
feature The Threads view now shows for JFR snapshots additional states (Waiting, Blocked, Parked, Sleeping) that were not available in previous versions. Earlier, only Runnable states were displayed.
">">
-
improvement Improved the behavior of the Show idle states option. When unchecked, only Runnable states are now displayed. Previously, the profiler used CPU time consumption in the sample to determine idleness, which could cause threads in Sleeping or Blocked states to appear as non-idle.
Object allocation profiling
-
feature We replaced the Classic allocation profiling mode with Bytecode instrumentation. The name Classic was confusing: in some cases it behaved like bytecode instrumentation, while in others it behaved like heap sampling. You can now explicitly enable Bytecode instrumentation mode. Both Heap sampling and Bytecode instrumentation modes now share the same configuration parameter: sampling interval. Now the profiler records an object allocation whenever a thread allocates the next N bytes (sampling interval).
">
-
feature In super-fast allocation counting mode, the profiler now records the size of allocated objects in addition to object counts (previously only counts were available).
- improvement The allocation counting mode has been optimized and is now 3–4 times faster than in version 2025.3.
- fix Fixed column names in the Allocation method list view for object counting mode. The columns now correctly display own values.
IDE integration
- feature NetBeans 27 is supported.
-
fix
Fixed an issue in the IntelliJ IDEA plugin that caused
SlowOperations.assertSlowOperationsAreAllowedwarnings. -
fix
Fixed an issue in the IntelliJ IDEA plugin that caused
StartupManagerImpl - Migrate to ProjectActivitywarnings. - caveat IDE plugins are now built with Java 17. The minimum supported IDE versions are IntelliJ IDEA 2023.1 (March 2023), Eclipse 2023-06 (June 2023), and NetBeans 22 (May 2024). Older IDEs are no longer supported.
EE server support
- feature Apache TomEE 10.1 is supported.
- feature JBoss 8.0 is supported.
- feature Jetty 12.1 is supported.
- feature WildFly 37 is supported.
Profiler API
- feature Introduced a new Java API for controlling Java Flight Recorder: startJrf(), stopJrf(), resetJfr(), getJfrConfigs() and captureJfrSnapshot().
- feature YourKit agent exposes new HTTP end-points for controlling Java Flight Recorder: startJfr, stopJrf, resetJfr, getJfrConfigs and captureJfrSnapshot.
- feature Added getInterval() and setInterval() methods to configure object allocation profiling programmatically. The methods getRecordEach(), setRecordEach(), getSizeLimit() and setSizeLimit() are deprecated and will be removed in a future release.
-
fix
HTTP API requests are now validated by method.
Only
POSTis accepted, as documented;GETandOPTIONSrequests are rejected with405 Method Not Allowed. - caveat The profiler Java API for snapshot analysis is compiled with Java 21 and therefore requires Java 21 to run.
-
caveat
In the HTTP endpoint
startAllocationProfiling, the modeexactStackswas replaced with instrumentation. The optionssizeLimit,recordEach, andheapSamplingIntervalwere replaced with a single optioninterval.
Triggers
-
caveat
Triggers can now write or modify files only within the sandbox directory
~/.yjp/triggers_out. The directory can be changed using thetriggers_out_diragent startup option.
Miscellaneous
- fix Resolved an issue with broken symlinks in the bundled runtime on Linux and macOS.
-
fix
The profiler agent option
disable_allnow also includesdisable_heap_samplinganddisable_oome_dumper. -
caveat
Agent option
samplingis replaced withcpu=sampling. -
caveat
Agent option
tracingis replaced withcpu=tracing. -
caveat
Agent option
async_sampling_cpuis replaced withcpu=async_sampling_cpu. -
caveat
Agent option
async_sampling_periodicis replaced withcpu=async_sampling_periodic. -
caveat
Agent option
call_countingis replaced withcpu=counting. -
caveat
Agent option
monitorsis replaced withmonitors=on|off.
Deprecations
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.
- The Linux ppc64le platform is deprecated and will be removed in the next release.