Changes in version 2021.3
- Mac on Apple silicon
- JVM support
- User interface
- Telemetry
- CPU profiling
- Memory profiling
- IDE integration
- EE server support
- Triggers
- Events
- Miscellaneous
- Deprecations
Mac on Apple silicon
-
feature Mac on Apple silicon is now natively supported. The platform is also known as
M1
,ARM 64
,arm64
,aarch64
.Both the profiler agent and the profiler UI run on Apple silicon natively without Rosetta emulation layer.
JVM support
- feature JDK 16 supported.
- caveat JDK 7 support deprecated in version 2020.7 was discontinued. The last version supporting Java 7 is YourKit Java Profiler 2020.9.
User interface
- improvement Remote connection in simple mode explicitly shows an error message if the specified host is invalid instead of informing that no profiled application is found without specifying the reason.
- improvement Callees list renamed to Callee list.
-
improvement New activation wizard improves UX of profiler activation and evaluation. The wizard guides through the activation and gracefully handles corner cases when the computer has no Internet connection, is behind a proxy, etc.
- improvement Main menu: the sub-menu Tools | Profile was moved to the top level item Profile.
- fix The profiler window might not show up because of a slow enumeration of locally running processes.
- fix Applications matching the development tool filter were not shown in the list even if they were actually profiled, i.e. the agent had been loaded.
- fix In SSH configuration it was impossible to choose private SSH key from the hidden directory.
- caveat The "system" color theme deprecated in version 2020.7 was finally removed.
Telemetry
- feature UI was adopted to support ZGC.
CPU profiling
- improvement The CPU profiling mode Call counting uses atomic counters to prevent undercounting.
- fix "Count" column visibility issues when CPU sampling is started in live view.
Memory profiling
- feature Profiler is now able to open IBM J9 / OpenJ9 JVM's Portable Heap Dumps.
-
feature New action Exclude Retained Objects opens a new tab with all the objects from the current set except for the retained set of the current selection. You can find the action in the popup menus of memory views.
Ignoring retained objects and focusing on the rest might help finding memory leaks and analyze memory distribution.
-
feature
Class-specific object presentation: the object explorer immediately shows the library name
for instances of
java.lang.ClassLoader$NativeLibrary
. - improvement Memory snapshot loading time was greatly improved. The speedup varies from 10% to 20%.
- improvement Array shallow size calculation algorithm for HPROF snapshots was updated to support possible object layouts in JDK 15+.
- improvement The object allocation recording mode "Count allocated objects" uses atomic counters to prevent undercounting.
- improvement The dialog window for the action Memory | Contained Objects shows all options accessible without scrolling.
-
improvement
Object sizes can be precisely calculated for a HPROF snapshot
created with the help of the
.snapshot
to.hprof
converter. - improvement Other snapshot processing optimizations.
-
fix
Object explorer and Quick info might improperly show content of
char[]
.
IDE integration
- feature IntelliJ IDEA 2021.1 supported.
- caveat Minimal supported IntelliJ IDEA version is now 2016.1. Support of IntelliJ IDEA 14 and 15 has been removed.
- caveat Minimal supported NetBeans version is now 8.2.
- fix IntelliJ IDEA: plugin settings were not stored for a project of type "IntelliJ Platform Plugin".
EE server support
- feature Integration wizard supports Tomcat 10.
- caveat Integration wizard no longer supports defunct JRun server.
Triggers
- feature Triggers panel: show macro descriptions.
Events
- feature JEE 9 (Jakarta EE) supported.
- feature OpenJPA 3.1 supported.
- feature EclipseLink 3.0 supported.
- improvement Built-in probes for file I/O and processes were changed to instrument non-native methods only. This allows the probes to work in the attach mode too, in which the instrumentation of loaded native methods is impossible.
Miscellaneous
- feature Automatic deobfuscation: source file names are also deobfuscated. This new functionality was added for Zelix KlassMaster (ZKM) and Allatori. It is not available for other obfuscators because their obfuscation logs do not support it.
- feature Summary tab shows the garbage collection name in the section Garbage collection.
- feature Summary tab shows the profiled application's PID.
- feature Summary tab shows the profiled application's profiler agent log file path. This can be used for troubleshooting.
- feature Summary tab shows the profiled application's environment variables.
- feature Summary tab shows the profiled application's working directory.
- feature Summary tab shows the "Command line" property for a HPROF snapshot too, if available.
- improvement Time measurement improvements in the profiler agent on Linux and macOS.
- improvement The profiler agent automatically applies the startup option skip_advanced_port_check when running under Kubernetes.
-
improvement
The profiler agent is capable of instrumenting
java.lang.Thread.sleep()
on all supported JVMs. -
fix
The profiler UI prevents JNA (Java Native Access) framework from loading a native library
from
PATH
instead of the bundled version. -
fix
Attach mode: a harmless exception "Non-numeric value found - int expected" was thrown
and logged after successful attach to a Java 11+ JRE instance not having the
jdk.attach
module. - fix Attach mode: Azul Zulu Java 8 JRE could not be attached on macOS.
- caveat Solaris 32-bit agents deprecated in version 2020.9 are no longer supported. Solaris 64-bit Java agents are still supported but declared deprecated.
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.
- Solaris support. This includes the remaining 64-bit agents and the ability to run the profiler UI on this platform.
- HP-UX support.
- Linux ppc 32-bit support. Note that Linux ppc64 (64-bit big endian) and ppc64le (64-bit little endian) remain fully supported platforms.
- AIX ppc 32-bit support. Note that AIX ppc64 (64-bit) remains a fully supported platform.