CPU tracing settings allow to customize some aspects of CPU tracing.
CPU sampling settings are specified separately, as described here.
The settings are applied each time you start CPU tracing. This means you can change the settings without restarting the profiled application.
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:
Specify whether CPU or wall time will be measured for profiled methods.
There can be any number of lines in the this format:
walltime=<fully qualified class name> : <method name> ( <comma-separated parameter types> )
walltime=<fully qualified class name>
Matching methods will be measured with wall time, all other methods - with CPU time.
If there are no lines with
walltime specified, all methods will be measured with CPU time.
Wildcards ('*') are accepted. E.g. the following specifies all methods of class com.Foo.Bar, which names start with 'print':
walltime=com.Foo.Bar : print*(*)
The default configuration for CPU tracing is to measure wall time for all methods, because the wall time timers are faster and more accurate than CPU time timers. This reduces CPU tracing overhead and increases accuracy of the results.
"Use Preconfigured Settings..." allows you to choose one of recommended presets.
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
To disable adaptive tracing specify
Methods excluded by adaptive tracing are specially presented in UI:
The settings are stored in the file
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