Fully featured low overhead profiler for Java EE and Java SE platforms.
Easy-to-use performance and memory .NET profiler for Windows, Linux and macOS.
Secure and easy profiling in cloud, containers and clustered environments.
Performance monitoring and profiling of Jenkins, Bamboo, TeamCity, Gradle, Maven, Ant and JUnit.

CPU tracing settings

CPU tracing settings allow to customize some aspects of CPU tracing.

CPU sampling settings are specified separately, as described here.

When the settings are applied

The settings are applied each time you start CPU tracing. This means you can change the settings without restarting the profiled application.

Configuring the settings

To configure CPU tracing settings use Settings | CPU Tracing... in the main menu.

The settings are also accessible via a link in the CPU profiling toolbar popup:

The following dialog appears:

Configurable properties:

  • Time measurement

    Specify whether CPU or wall time will be measured for profiled methods by using the time property.

    The default configuration for CPU tracing is to measure wall time (time=wall). This reduces CPU tracing overhead and increases accuracy of the results because the wall time timers are faster and more accurate than CPU time timers.

    To measure CPU time instead, specify time=cpu.

    When starting tracing from the profiler UI, choose the option via Use Preconfigured Settings... or manually edit the property value.

  • Adaptive tracing mode

    Adaptive tracing mode automatically reduces profiling overhead by skipping short running methods with big number of invocations. Such methods usually cause the most significant profiling overhead, and their exclusion results in both faster tracing and more realistic results. The decision to exclude particular method is made basing on the statistics collected during the current tracing session.

    Excluding a method means that there will be no exact results for it (time, invocation count), but for its callers only. Due to reduced overhead, its caller method time will be more adequate.

    The benefit of adaptive tracing is that it does not require human interaction and works with any application, eliminating the need to explicitly specify filters for particular application if default filters do not fit well. However, please note that the adaptive tracing needs some time to warm up, i.e. to collect statistics on which methods deserve to be excluded.

    To enable adaptive tracing specify adaptive=true (default).

    To disable adaptive tracing specify adaptive=false.

    Methods excluded by adaptive tracing are specially presented in UI:

    • the methods are indicated with the no-entry sign
    • because the actual time and invocation count for the methods is most likely bigger than the amount measured by the moment when the methods have been excluded from tracing, the time and invocation count values are prepended with the greater-or-equal sign, the average and own time values - with the approximately-equal sign

The configuration file

The settings are stored in the file

<user home>/.ynp/tracing_2022.txt

where user home corresponds to the account under which a profiled application is launched.

This file is automatically updated in your user home directory when you apply changes in the UI (see above). You can also edit it manually.

The settings file is read and applied when CPU tracing is started with:

You can specify a custom settings file for a particular application by using the startup option tracing_settings_path.

YourKit uses cookies and other tracking technologies to improve your browsing experience on our website, to show you personalized content and targeted ads, to analyze our website traffic, and to understand where our visitors are coming from.

By browsing our website, you consent to our use of cookies and other tracking technologies in accordance with the Privacy Policy.