Detect performance bottlenecks in your application and find ways to boost its productivity with the IntelliJ IDEA profiling tools.

Profile your app right from the IDE

You don't need to install any additional profiling tools, since IntelliJ IDEA is integrated with Async Profiler and Java Flight Recorder.

Fast start

It is easy to start profiling your application – just open the Profiler tool window from the bottom toolbar, select a running process, and right-click it to choose which profiler to attach. You can then stop profiling and see the results in the same tool window.

Extensive analysis

Our profiler features different ways to display the collected data. You can choose which one works for you – a flame graph, call tree, or methods list.

Results import

IntelliJ IDEA automatically saves profiling results in .jfr for CPU or memory sampling and .hprof for memory snapshots. You can then open them when needed or share the results with your teammates.

Analyze CPU snapshots

To thoroughly interpret the resulting CPU snapshots, IntelliJ IDEA supports several useful tools.

Flame Graphs

This helps you visualize the call stack for a selected thread and see how it changes over time. The wider a stack frame is, the longer the method took to execute. The blue blocks stand for native calls and the yellow ones for Java calls.

Call Tree

This shows the percentage of the CPU time used by the methods, the method execution path in your application, and the total sample count. Call tree is useful for a quick overview of application activity and detection of critical execution paths.

Methods list

This shows a list of the methods executed while you were profiling your data. All of them are sorted by cumulative sample time. Each selected method has several views that show you either the method’s callers or callees.


This lets you view the data related to JVM events like Class loading, Garbage collection, OS events, and many more.

How profiling tools work

Watch a video overview or read our blog posts.