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 profiling

When the profiler is connected to the profiled application, the toolbar contains the following CPU profiling controls:

Toolbar Button Description
Capture performance snapshot button Capture performance snapshot - save the profiling results to a file for comprehensive analysis.
Start CPU profiling button Stop CPU profiling button Start/Stop CPU profiling.
Reset profiling results Reset recorded CPU profiling results and continue CPU profiling.

CPU profiling modes

You can choose either of two available measurement modes: sampling or tracing.

Sampling Tracing
Measured time accuracy High for long running methods, low for short running methods Low to high, depending on profiled application and settings
Invocation counts Not available Available
Overhead Negligible unless high-level profiling is enabled Low to high, depending on profiled application and settings

Start CPU profiling

You can start and stop CPU profiling during the execution of your application as many times as you want. When CPU profiling is not running, the profiler adds no performance overhead to application being profiled.

Profiler UI

  • Connect to the application.
  • Choose the profiling mode.
  • Click the button to start profiling as shown on the picture:

Startup options

It may be useful to launch the application with CPU profiling right from the start. Learn more about profiler agent startup options.

Command line tool

Command line tool is designed to control profiling modes in headless environments.

Profiler API

API class YourKit.Profiler.Api.Controller for each profiling mode has a corresponding method to start CPU profiling.


Profiler built-in triggers allow to start CPU profiling on high CPU usage, periodically, or by other conditions.

Live results

When CPU profiling is started, the results are immediately available in Call tree - All threads merged, Flame graph and Method list sections on CPU tab.

In case of CPU tracing, both method times and invocation counts are shown. In case of CPU sampling, only times are shown.

Live CPU views

The live view provides only basic information. To perform comprehensive analysis, capture performance snapshot, open it and use the full featured CPU tab.

Finish measuring and get the results

When the task you intended to profile has finished (or has performed for a sufficient amount of time), capture a performance snapshot with all the recorded information.

Capture CPU snapshot

When this is done from the profiler UI, you can open the results for immediate analysis.

Further topics in this section describe the profiler's UI for analyzing CPU profiling results.

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.