PHPStorm/Webstorm increase memory to more than 512MB
I'm using PHPStorm
under Win7 64bit
with 64bit Java (latest version I guess)
and working currently on an insanely big and chaotic project. There are many classes containing 10k LOC
and more. Therefore my PHPStorm
runs out of memory once in a while.
I get this nice Out-of-Memory
dialog suggesting increasing my memory settings. I currently have set in my PhpStorm.exe.vmoptions
:
-server
-Xms128m
-Xmx512m
-XX:MaxPermSize=250m
-XX:ReservedCodeCacheSize=64m
-ea
-Dsun.io.useCanonCaches=false
-Djava.net.preferIPv4Stack=true
-XX:+UseCodeCacheFlushing
-XX:+UseConcMarkSweepGC
-XX:SoftRefLRUPolicyMSPerMB=50
The problem is: When I increase my memory to be used in this file I get the following error when starting the program:
Failed to create JVM: Error code -4
I Googled around but nobody seems to want the memory to be more than 512MB
.
Does anybody know what I can do to use PHPStorm without any hassle again?
Sure, I can reset the cache but this is not a permanent solution, right?
I read somewhere that adding this line to my vmoptions
is a good idea, but I don't see any difference:
-server
....
-XX:MinHeapFreeRatio=15
Changing memory settings for PHPStorm now has a menu option:
Make sure that PhpStorm use 64-bit Java and not bundled one (which is 32-bit). You an check that in Help | About
.
Generally speaking: with 64-bit Java you do not have to change that value as it works a bit differently compared to 32-bit one.
1) PhpStorm comes with bundled x86 Java and it is the first one that it tries; only then it looks for other Java installations -- check PhpStorm.bat
for details (what environment variables and in which order). By defining one of those environment variables (which will point to your 64-bit Java installation) you can tell PhpStorm to use instead of bundled one.
2) PhpStorm v8 (currently in EAP stage) comes with 64-bit specific files: you should use PhpStorm64.exe
and not PhpStorm.exe
(same for .vmoptions
file -- it should be PhpStorm64.exe.vmoptions
).
I'm not sure how PhpStorm v7 works with 64-bit Java -- have never tried it this way myself.
Selecting the JDK version the IDE will run under
https://intellij-support.jetbrains.com/entries/23455956-Selecting-the-JDK-version-the-IDE-will-run-under
After reading this post, I switched to 64bit version (after installing correct JDK) and increased designated memory to 2GB just to shut it up. But I still hit the ceiling, freezes et.c.
Eventually realized, that I had my bower_components
folder tracked. Folders like this with tons of javascript-files et.c. will basically eat all ram in the world (I also exclude node_modules
folder now, same story). So I right-clicked the folder > Mark directory as > Exluded. After some garbage-collection, bumped PhpStorm's memory footprint down to 5-600mb, which seems reasonable.
PhpStorm 2016.1 and newer
As of PhpStorm 2016.1 instead of WEBIDE_JDK_64
one should use JAVA_HOME
environment variable that should point to your JVM path.
Versions prior PhpStorm 2016.1
Like it was mentioned in the @LazyOne's answer, as of PhpStorm v8 (already released), you can use PhpStorm64.exe. But I wasn't able to find any description on how to specify the JVM path for it. The document that explains how to select the JDK version, seems to be a bit outdated.
After some research, I discovered that you should create WEBIDE_JDK_64
environment variable that should point to the JRE 64-bit installation path. After doing this, you will be able to start PhpStorm64.exe.
By default it sets max memory to 750mb
. If you need more, you can modify the C:\Program Files (x86)\JetBrains\PhpStorm 8\bin\PhpStorm64.exe.vmoptions
. The better idea, however, would be to edit your user's vmoptions file. Just copy C:\Program Files (x86)\JetBrains\PhpStorm 8\bin\PhpStorm64.exe.vmoptions
to %USERPROFILE%\.IntelliJIdea12\idea.vmoptions
and set -Xmx750m
to a higher value.
Simply File
> Invalidates Caches / Restart...
works for me. 👌😀