- System requirements
- Profiler architecture
- Running the profiler
- Profiler activation
- Running applications with the profiler
- Connect to profiled application
- Troubleshoot connection problems
- Solving performance problems
- CPU profiling
- CPU usage estimation
- Asynchronous sampling
- Call counting
- CPU tab
- What-if: an ability to ignore particular methods or focus on particular methods only
- Comparing performance snapshots
- Sampling settings
- Tracing settings
- Deadlock detector
- Memory profiling
- Garbage collection
- Monitor profiling
- Exception profiling
- Probes: monitor events of various kinds
- Performance Charts
- Inspections: automatic recognition of typical problems
- Automatically trigger actions on event
- Summary, snapshot annotation, automatic deobfuscation
- IDE integration
- Time measurement (CPU time, wall time)
- Snapshot directory customization
- Export of profiling results to HTML, CSV, XML, plain text
- Profiler Java API
- Profiler HTTP API
- Command line tool to control profiling
- FAQ: How to profile in my scenario?
CPU sampling settings allow to customize some aspects of CPU sampling.
CPU tracing settings are specified separately, as described here.
When the settings are applied
The settings are applied each time you start CPU sampling. This means you can change the settings without restarting the profiled application.
Configuring the settings
To configure CPU sampling settings use Settings | CPU Sampling... 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 by using the
By default, CPU time is measured which corresponds to the option
With synchronous and asynchronous periodic sampling, it's possible to measure wall time instead by using
Asynchronous CPU sampling always measures CPU time, the
timeproperty value is ignored.
When starting sampling from the profiler UI, choose the option via Use Preconfigured Settings... or manually edit the property value.
Sampling period (synchronous and asynchronous periodic sampling)
Specify how often samples are taken with
sampling_period_ms=<time in milliseconds>. By default, samples are taken each 20 milliseconds (
CPU threshold (asynchronous CPU sampling)
Specify CPU time threshold for asynchronous CPU sampling with
cpu_threshold_ms=<time in milliseconds>. By default, CPU time threshold is 10 milliseconds.
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 edit this file manually, but note that it may be fully overwritten with Use Preconfigured Settings... in UI.
The settings file is read and applied when CPU sampling is started with:
- the command line tool
You can specify a custom settings file for a particular application
by using the startup option