Changes in version 2021.11
- JVM support
- Java Flight Recorder support
- Networking
- User interface
- CPU profiling
- Memory profiling
- IDE integration
- EE server support
- Events
- Miscellaneous
- Deprecations
JVM support
- feature Java 17 supported.
- feature OpenJ9 release 0.29.x supported.
Java Flight Recorder support
-
feature Java Flight Recorder (JFR) support has been added. The profiler is now able to open JFR recording files (
.jfr
). You can analyze JFR recordings by using the powerful features that the profiler provides for its own performance snapshots.
Networking
- feature We have completely reimplemented transport layer of communication between profiler UI and agent. The communication is now implemented on top of HTTP, WebSocket and SSL which gives an ability to proxy traffic though the HTTP proxies like Apache and Nginx.
- feature Connection to the profiler agent is now possible through SOCKS v5 proxies.
- feature Communication between profile UI and profiler agent is now always encrypted by SSL. Profiler agent generates self-signed SSL certificates on the fly to achieve maximum security, when trusted SSL certificate is not available.
- feature Profiler agent exposes HTTP API. API is based on HTTP requests and JSON responses, so you can use any tool of your choice to send the requests, parse responses and automate profiling in your environment.
- feature Profiler agent has the options to comprehensively configure SSL encryption: chain of SSL certificates, secret key and password.
-
feature New option Trust All SSL certificates in Settings menu disables SSL certificate validation. It is crucial to disable the certificate validation when you run the profiler in a company network where the network traffic is analyzed by MITM proxy servers intercepting and substituting SSL certificates.
-
feature Profiler API
com.yourkit.api.controller.Controller
and CLI interface got an ability to connect to the agent behind the reverse HTTP proxies, by specifying reverse proxy path. -
feature
API of
com.yourkit.api.controller.Controller.Builder
allows to specify connection timeouts. - fix HTTP proxy authentication might not work in several circumstances.
- fix HTTP proxy detection did not work on Linux with GNOME desktop environment.
- fix Profiler UI might fail to check updates on macOS 12.0 Monterey.
User interface
-
feature
Optional reverse HTTP proxy path can be configured when creating connection
to the remote agent.
- improvement No matter if a method in a call tree is filtered or not, when it is expanded, the UI now always shows all sub-nodes with line numbers.
- improvement Remote snapshot transfer progress is now cancellable.
- fix Missing popup menu "Expand/Collapse" items.
- fix The profiler UI might freeze after the profiled application terminated.
- fix Internal error on attempt to open an invalid ZIP-ed (.zip) or GZIP-ed (.gz) snapshot.
- fix Open snapshot dialog silently didn't show HPROF and PHD snapshots in the list if the file header could not be read.
- fix Depended view now keeps the sorted column when selection in the top table changes.
- fix Hyperlinks in trees might not work in several circumstances.
- fix Type to search feature did not scroll enough horizontally, so the matched text might be in invisible area.
- fix Toolbar buttons flickered just after connecting to the agent.
CPU profiling
-
feature "CPU" tab: the live view now shows the call tree by thread in addition to the call tree with all threads merged.
- fix HPROF dumps with CPU samples: undervalued sample counts.
Memory profiling
-
feature "Memory" tab: the Allocations section now shows the call tree by thread in addition to the call tree with all threads merged.
-
feature "Memory" tab: the Allocations section now shows the depended Classes view with per-class allocation statistics not only for a memory snapshot, but also for a live session, a performance snapshot and a JFR recordings file.
-
feature "Performance Charts": allocated object memory graph is show in addition to the allocated object count graph.
IDE integration
- feature Eclipse 2021-09 supported.
- feature MyEclipse 2021.5 supported.
- caveat Minimal supported MyEclipse version is now MyEclipse 2014.
- feature IntelliJ IDEA 2021.3 supported.
- feature IntelliJ IDEA: Open in IDE action tries to open a core class from the appropriate JDK if the project uses multiple JDKs.
- feature NetBeans 12.4 supported.
EE server support
- feature GlassFish 6.2 is supported.
- feature JBoss 7.4 is supported.
- feature WebSphere Liberty 21 is supported.
- feature WildFly 25 is supported.
- caveat Minimum supported GlassFish version is now 4.0.
Events
- fix "Events" tab: focus might be lost when navigating the event table selector.
-
improvement Tab Events by Table has been renamed to Event Table. The new name is shorter, cleaner and more consistent with the events from Java Flight Recorder.
Miscellaneous
- feature Automatic deobfuscation: line number deobfuscation is supported for Zelix KlassMaster (ZKM).
-
feature
Profiler API: new class
com.yourkit.api.controller.Controller
should be used to control profiling. The old classcom.yourkit.controller.Controller
still works but is deprecated and scheduled for removal. - feature Profiler agent writes information about client HTTP requests in the log file.
-
caveat
Profiler API:
com.yourkit.controller.Controller
methodsstartExceptionProfiling()
andstartMonitorProfiling()
no longer throw an exception if the corresponding profiling mode is already on; they do nothing instead. Also, ifstartExceptionProfiling()
is called when exception profiling is off, previous exception profiling results are cleared. - improvement Agent startup option "listen" in the advanced mode accepts an IP address only.
- improvement For security, the profiler agent no longer opens socket on loopback if socket address is specified with the agent startup option "listen".
- caveat Solaris is no longer supported.
- caveat HP-UX is no longer supported.
- caveat Linux ppc 32-bit is no longer supported. Note that Linux ppc64 (64-bit big endian) and ppc64le (64-bit little endian) remain fully supported platforms.
- caveat AIX ppc 32-bit is no longer supported. Note that AIX ppc64 (64-bit) remains a fully supported platform.
- caveat Minimal supported macOS version is now Mojave (10.14).
- caveat Minimal supported FreeBSD version is now 12.
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.
- CPU usage estimation action and view in "Events" tab are hidden from the UI, and scheduled for removal. If you need this feature, please contact support. 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.
- FreeBSD 32-bit (i386) support. Note that FreeBSD 64-bit (amd64) remains a fully supported platform.
-
The profiler API class
com.yourkit.controller.Controller
is deprecated for removal. Use the new profiler API classcom.yourkit.api.controller.Controller
instead. -
Agent startup options
skip_advanced_port_check
anddo_advanced_port_check
are no longer needed and have no effect if specified.