IntelliJ IDEA 2021.3 Help

Run with a profiler

Configure the directory for snapshots

By default, snapshots are stored in the user home directory. To save snapshots to a different directory:

  1. Open the Start page of the Profiler tool window and click the Change Snapshot Folder button.

    Set snapshots folder 1
  2. Choose the directory and click OK.

    Set snapshots folder 2

Run with a profiler

  • Click the the Run button icon in the gutter next to the entry point of the application that you want to profile and select the necessary profiling option: Async Profiler or Java Flight Recorder.

    run with profiler

Profile a run configuration

At the moment, you can profile the most common run configurations. Application server run configurations are currently not supported, except the local Tomcat run/debug configuration.

  1. Select a run configuration from the list on the toolbar.

    If the list is empty or the necessary configuration is not created yet, refer to Run/debug configurations for instructions on how to create one.

  2. Click Icons actions move down next to Profiler and select the necessary profiling option: Async Profiler or Java Flight Recorder.

(Only for Async Profiler on Linux) Upon the first launch of the profiler, IntelliJ IDEA checks whether kernel variables are already set up and suggests the necessary changes:

adjust linux kernel variables for the profiler

Attach a profiler to a running process

You can attach a profiler to a running process or capture a snapshot of its memory right from the Profiler tool window.

  1. From the main menu, select View | Tool Windows | Profiler.

    In the Profiler tool window, you will see the list of running processes.

  2. Right-click the necessary process.

    For a memory dump, select Capture Memory Snapshot. For profilers, select Attach Profiler to Process and select the profiling type: Async Profiler or Java Flight Recorder.

    Attaching Java Flight Recorder to a process

Profile Maven goals

In IntelliJ IDEA, you can profile several goals:

  1. From the main menu, select View | Tool Windows | Maven.

  2. In the Maven tool window, right-click the goal that you want to profile and select the necessary profiling option: Async Profiler or Java Flight Recorder.

    Profiling a Maven goal

    IntelliJ IDEA creates a temporary run configuration that you can save and rerun later.

If you already have a Maven run/debug configuration for the required goal, you can profile it the same way as any other run configuration.

Limitations

Currently, there are several limitations for profiling Maven goals:

  • Profiling tools in IntelliJ IDEA do not support Maven profiles, executions, and versions. That is why, some complex configurations might not profile correctly.

  • Profiling of specific versions of the mentioned goals is not supported (for example: org.codehaus.mojo:exec-maven-plugin:3.0.0:exec).

  • You cannot profile the goals if they are configured in a way that more than one process is created during their execution.

  • Profiling of the exec:exec, surefire:test, and failsafe:integration-test goals is possible only in projects without modules. You can, however, profile a specific module provided that it has no sub-modules.

  • Profiling is not possible if there are certain arguments in a plugin configuration:

    • commandlineArgs in the exec:exec plugin configuration

    • debugForkedProcess in the surefire:test and failsafe:integration-test plugin configurations

  • If the Exec Maven Plugin configuration has <arguments> in pom.xml, the values in <arguments> are skipped during the execution of the exec:exec goal.

Stop profiling and get results

When the profiling data is ready, you will see a confirmation popup together with the Profiler tool window bar. Click this bar to open the Profiler tool window or go to View | Tool Windows | Profiler if you don't use tool window bars.

Profiler popup informing that the data is ready

Alternatively, go to View | Tool Windows | Profiler, wait for Java Flight Recorder to collect enough data, and click Stop Profiling and Show Results.

Getting the profiling results

When the analysis is finished, you can review and analyze the reports.

Last modified: 01 August 2022