JetBrains logo

IntelliJ IDEA

Profile Java applications
with ease

Monitor and analyze your application’s performance right in IntelliJ IDEA.

Get started with Java profiling

Profile your application without leaving the IDE.

Profile Java application

Fast start

To start profiling in IntelliJ IDEA, click on three dots in the upper-right corner of the IDE or on a "Play" gutter icon next to a code line and select "Profile with IntelliJ Profiler".

In-editor performance hints

In-editor performance hints

The IntelliJ Profiler has in-editor performance hints, which enhance your profiling experience by providing easy-to-interpret color-coded annotations right in the gutter.

CPU and memory live charts for Java application

CPU usage and memory live charts

The IDE provides a way to monitor live performance statistics with the following metrics for running applications: CPU, heap memory, threads, and non-heap memory. Live data can help you visualize resource consumption, identify resource-related bottlenecks, and understand how certain events affect your program’s performance.

Performance snapshots

Read, analyze, and navigate Java application snapshots in the IDE.

Profiler Flame graph view for Java application

Flame graph

This view 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 takes to execute. The colored blocks display native, library, and user code.

Profiler Call tree view for Java application

Call tree

This view 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.

Profiler Method list view for Java application

Method list

This view 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.

Profiler Timeline view for Java application

Timeline

This is a visual representation of threads activity over time. It is helpful for detecting unusual GC activity, multithreading issues such as livelocks, and so on.

Heap dump analyzer for Java application

Heap dump analyzer

In IntelliJ IDEA, you can analyze .hprof snapshots to find memory leaks in your code and locate the objects that consume the most memory.

Thread dump analyzer for Java application

Thread dump analyzer

Thread dumps capture the state of your Java application at a particular instant. This helps you diagnose synchronization issues for any process.

Java profiling tutorials

Guides