Changes in version 2024.9
- macOS support
- YourKit Connection Broker
- Snapshot compression
- User interface
- CPU profiling
- Thread profiling
- IDE integration
- Profiler API
- Miscellaneous
macOS support
- caveat We have raised the minimum supported version requirements for macOS on the x64 architecture. The profiler now requires macOS 10.15 or later.
YourKit Connection Broker
YourKit Connection Broker continues to evolve, and in this release, we are excited to introduce new and interesting features:
-
feature You can select the geographic region to which applications connect. This significantly increases throughput and reduces network latency.
-
feature You can now observe and manage profiling modes of your .NET applications directly from the web browser.
-
feature The application's web page now displays telemetry charts for CPU, memory, and garbage collector activity.
-
feature Collaboration is now possible. You can invite collaborators to monitor together the performance of your .NET applications.
-
feature The list of monitored applications now includes the column for .NET heap usage.
- caveat If you already have a Connection Broker account, you need to migrate it to cloud.yourkit.com.
Snapshot compression
Data compression algorithms are constantly evolving, and in version 2024.9, we decided to turn the zstd compression algorithm on by default for compressing transferred snapshots.
In previous versions of the profiler, users could specify whether compression was used when transferring a snapshot from a remote machine. However, zstd demonstrated such outstanding compression quality and speed that we decided to remove the compression option from the user interface. Compression is now enabled by default, making the UI simpler and cleaner.
For those who wish to disable compression or revert to the
previous deflate
algorithm,
we have added the profiler agent option
snapshot_download_compression
,
which allows you to specify the desired behavior.
User interface
-
feature Remote snapshots can now be downloaded in the background. There is no longer a modal progress window that blocks the user interface. You can continue working with the profiler while the snapshot file is downloaded from the remote machine. The download progress is displayed in a small, non-modal notification balloon.
-
feature You can customize your workflow when working with snapshots by specifying actions that will be automatically performed after capturing a snapshot or after downloading a snapshot from a remote machine. For example, you can choose to Always download the remote snapshot and Always open it after downloading.
You can also set your preferences in the Settings | On Snapshot Capture menu.
- improvement CPU usage estimation has been greatly optimized. It now works much faster and does not block the user interface while performing the calculation.
-
feature
Profiler can now open snapshot files compressed by
Zstandard (zstd) compression algorithm
(
.zst
and.zstd
file extensions). - fix The issue where pressing ESC did not always close an open window has been fixed.
CPU profiling
-
feature When monitoring a running application, the column displaying the number of samples is shown in the call tree views in CPU sampling mode.
-
feature When monitoring a running application, the columns displaying the average call duration and the number of invocation counts are shown in the call tree views in CPU tracing mode.
Thread profiling
-
feature We have redesigned and improved the user interface for the view that displays stack traces for threads.
1. A long-awaited option,
Pin stack to the selected thread, has been added. This allows you to display the stack of only the thread selected in the top thread list.
2. All useful actions have been placed in a vertical toolbar. This increases the amount of visible useful information and makes the interface simpler and more intuitive.
- fix In several cases, the profiler displayed the thread state as Runnable when the thread was actually waiting in native code.
IDE integration
- caveat The minimum supported version of JetBrains Rider is now 2020.3.
Profiler API
-
feature
The Profiler API (both the
HTTP API and
.NET API)
now allows changing profiling modes without first stopping the profiling.
In the previous version of the profiler, for example,
it was necessary to stop CPU sampling before starting CPU tracing.
Now, you can call
startSampling
and thenstartTracing
without needing an intermediate call tostopCpuProfiling
.
Miscellaneous
-
improvement
New
quiet=true|false
option suppresses or allows printing occasional agent messages to stdout and stderr, such as printing agent log path on application startup. Previously agent printed such messages, the new default suppresses them. - caveat The HTTP API v1 has been removed. Please use HTTP API v2.