Note: instructions are the same for both IDEs. Just replace "PhpStorm" with "WebStorm" where appropriate.
Before capturing and providing the CPU snapshot, please be aware of the following known issues (and possible solutions):
If the UI of PhpStorm is unresponsive for more than 5 seconds, it starts writing thread dumps to the logs directory. If you've encountered a situation of PhpStorm unresponsiveness or deadlock, please find the threadDumps-xxx directory from the session in which you've experienced the problem and send the contents to support@jetbrains.com
On Windows and Linux, the logs directory can be found at:
~/.WebIDEXX/system/log
On Mac OS X, the logs directory can be found at:
~/Library/Logs/WebIDEXX
If you have a performance problem not related to the issues mentioned above, please contact support@jetbrains.com and provide the following information:
Please obtain the library(64-bit for 64-bit JVM) version from the YourKit Java Profiler distribution (you need Linux .zip download of 8.x version containing library versions for different operating systems: Linux, Mac, Solaris, Windows). You will find libraries in "bin" folder of the distribution. Copy (or replace) yjpagent library in PhpStorm_HOME\bin with the appropriate version. Use 8.x YourKit version for PhpStorm, otherwise toolbar buttons will not appear!
Open PhpStorm_HOME/bin/PhpStorm.exe.vmoptions (PhpStorm.vmoptions on Linux), add the following line at the bottom:
-agentlib:yjpagent
On Mac OS X open Info.plist located in /Applications/PhpStorm-X.X.app/Contents, find the following:
<key>VMOptions</key>
<string>-Xms16m -Xmx192m -XX:MaxPermSize=120m -Xbootclasspath/p:../lib/boot.jar -ea</string>
Modify the string tag by adding -agentlib:yjpagent option, like:
<string>-Xms16m -Xmx192m -XX:MaxPermSize=120m -Xbootclasspath/p:../lib/boot.jar -ea -agentlib:yjpagent</string>
Start PhpStorm and you should notice 2 new toolbar buttons: one for taking CPU snapshot, another one for Memory snapshot. How to capture proper CPU snapshot:
Then submit an issue to PhpStorm/WebStorm issue tracker and attach the zipped snapshot file to it. In the e-mail please also describe what you were doing in detail. If you can reproduce the problem in a small project, please also provide one.
In case of memory related issues (memory usage goes high, garbage is not collected, etc) please use the Memory snapshot button in the menu near the CPU snapshot button. If it's not possible to get the snapshot because of the application crashing with OutOfMemory errors, please add the
-XX:+HeapDumpOnOutOfMemoryError
option to the PhpStorm JVM options(the same place as for "-agentlib:yjpagent" option in above CPU snapshot section). On the next OOM error the .hrpof dump will be produced and saved by the JVM (usually in the application working directory which is PhpStorm_HOME\bin).
The memory snapshots should be uploaded to our FTP site: ftp://ftp.intellij.net/.uploads/
After uploading the snapshot, please notify us by e-mail or file a YouTrack issue and specify the name of the uploaded snapshot file.
There are no comments on this document