Reporting performance problems

This article is dedicated to reporting performance problems with IntelliJ IDEs and related information to JetBrains support. You can submit a support request via Help menu in your IDE or via Submit a Request button at the top of this page.

IntelliJ IDEA and PyCharm Community Editions do not bundle Performance Testing plug-in that is required for profiling. Please install it: In Settings (Preferences) | Plugins search for Performance Testing on Marketplace tab.

IDE hangs and doesn't respond

When IDE hangs and doesn't respond so that you can't use the menu to capture the CPU snapshot, provide the thread dumps.

The CPU usage is high or IDE is slow

If you can continue working with the IDE, but it feels slower than expected or CPU usage is high:

  1. Capture CPU Snapshot

    To provide an informative CPU snapshot you should click on Help | Diagnostic | Start CPU Usage Profiling. For the first time you may be prompted to restart IDE (necessary VM options will be added) - in this case, after restarting select Start CPU Usage Profiling again.

    Then perform the actions which are causing performance problems, try to reproduce the performance problem several times while the snapshot is being recorded, then click on the Help | Diagnostic | Stop CPU Usage Profiling to save the snapshot file (snapshot is saved in the user home directory and IDE will show a notification with the exact file name, the extension of the file is .zip). If you don't see a notification and can't find the snapshot file, please check that notifications are enabled for the Profiler.

    When reporting the problem, please make sure to describe what you were doing in detail.

  2. Upload snapshot

Memory Leak or High Memory Consumption

If you can continue working with the IDE, but there is a memory leak:

  1. Capture memory Snapshot

    If the problem you are reporting is related to the heavy memory usage and frequent garbage collection, while increasing the heap size doesn't help, use the Help | Diagnostic | Capture Memory Snapshot menu item.

    To capture automatic memory snapshots when IDE runs out of memory, add

    -XX:+HeapDumpOnOutOfMemoryError

    into .vmoptions file. .hprof dump file will be created in the current working directory of the application (IDEA_HOME/bin). In case this directory is read-only, add

    -XX:HeapDumpPath=/dumps/folder

    option to change it. See Oracle documentation for more details.

    Please note, that memory snapshot may contain the sensitive source code from your project.

    jmap Binary Memory Snapshot

    Use jmap utility from the Java distribution to get shared object memory maps or heap memory details for a process. Process ID (pid) can be obtained using jps utility or your system specific process manager. Example:

    jmap -dump:live,format=b,file=heap.bin <pid>
  2. Upload snapshot

Profiling Slow Startup

If IDE is starting up slow:

  1. Capture CPU usage snapshot of slow startup

    Invoke Help | Diagnostic | Profile Slow Startup. Press Change and Restart IDE. After the restart, invoke Help | Diagnostic | Stop CPU Usage Profiling.

  2. Upload snapshot

Profiling Slow Indexing

If the indexing process of an exact project runs longer than expected:

  1. Capture CPU snapshot of slow indexing

    Invoke Help | Diagnostic | Profile Indexing. Click Invalidate and Restart (please note that Local History and Indices will be destroyed). Click Open Snapshot in ... to locate the snapshot.

    If indexing doesn't stop, invoke Help | Diagnostic | Stop CPU Usage Profiling after waiting on the indexing phase a bit.

  2. Upload snapshot

Profiling build process

Please refer to this web help page to get detailed instructions on how to profile a build.

40 out of 162 found this helpful
33 comments
I tried debug Android Studio in Mac X El Capitan. After adding flag I got: xxx@~$ open -a Android\ Studio LSOpenURLsWithRole() failed for the application /Applications/Android Studio.app with error -10810. I tried these: -agentpath:libyjpagent.jnilib=delay=10000 -agentlib:yjpagent64=delay=10000 -agentlib:yjpagent=delay=10000
0
Console log: ``` 11/01/16 18:00:26,849 studio[1689]: Value of STUDIO_JDK: (null) 11/01/16 18:00:26,853 studio[1689]: fullFileName is: /Applications/Android Studio.app/Contents/bin/studio.vmoptions 11/01/16 18:00:26,853 studio[1689]: fullFileName exists: /Applications/Android Studio.app/Contents/bin/studio.vmoptions 11/01/16 18:00:26,853 studio[1689]: Value of STUDIO_VM_OPTIONS is (null) 11/01/16 18:00:26,854 studio[1689]: Processing VMOptions file at /Applications/Android Studio.app/Contents/bin/studio.vmoptions 11/01/16 18:00:26,854 studio[1689]: Done 11/01/16 18:00:26,854 studio[1689]: Processing VMOptions file at /Users/neworld/Library/Preferences/AndroidStudio1.5/studio.vmoptions 11/01/16 18:00:26,854 studio[1689]: Done 11/01/16 18:00:26,854 studio[1689]: Processing VMOptions file at 11/01/16 18:00:26,854 studio[1689]: No content found 11/01/16 18:00:26,859 com.apple.xpc.launchd[1]: (com.google.android.studio.48992[1689]) Service exited with abnormal code: 1 ```
0

I can't seem to enable the profiler agent.  I'm running IDEA EAP 15CE on Mac OS/X 10.10.5.

When I look in ~/Library/Preferences, I see two IDEA related directories:

  • IdeaIC15
  • IntelliJIdea15

I copied /Applications/IntelliJ\ IDEA\ 15\ CE.app/Contents/bin/idea.vmoptions over to IntelliJIdea15 and edited the file there to include:

-agentlib:yjpagent=delay=10000

I restarted the IDE, but there were no new options under the Tools menu.  So then I tried editing idea.vmoptions under the IdeaIC15 directory, but when I do that, the IDE won't start at all and I see nothing to indicate what the error is in idea.log.

Is there something I'm doing wrong here?

Edited by ryan shoemaker
0

Article is closed for comments.

Have more questions?

Submit a request