PHPStorm/Webstorm increase memory to more than 512MB

62,921

Solution 1

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

Solution 2

Changing memory settings for PHPStorm now has a menu option:enter image description here

Solution 3

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_componentsfolder 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.

Solution 4

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.

Solution 5

Simply File > Invalidates Caches / Restart... works for me. 👌😀

Share:
62,921
Ron
Author by

Ron

"Nothing is ever easy." — Zedd

Updated on July 09, 2022

Comments

  • Ron
    Ron almost 2 years

    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
    
  • Ron
    Ron almost 10 years
    I seems that it doesn't like the 64bit at all. I added the WEBIDE_JDK enviroment var and now nothing is happening when I want to start the program...
  • LazyOne
    LazyOne almost 10 years
    intellij-support.jetbrains.com/entries/… -- maybe you have provided wrong path?
  • Ron
    Ron almost 10 years
    I'm pretty sure I have the right path... But the v8 seems to work and I can manipulate the memory settings! Do you know if this option is good to use: XX:MinHeapFreeRatio=15?
  • LazyOne
    LazyOne almost 10 years
    Sorry -- not a Java/JVM person, at all.
  • Michael J. Calkins
    Michael J. Calkins about 9 years
    In order to solve this one it was a combination of this answer and the bottom answer.
  • G. Ghez
    G. Ghez about 9 years
    Thank for information, I just do this for WebStorm and it's working better now.
  • Buttle Butkus
    Buttle Butkus over 8 years
    I had an 81MB xdebug profiler output I tried to open in PhpStorm 9.0.2. After over 10 minutes of trying, it gave me "out of memory" error. I realized I was running 32 bit PHPS. I increased Xmx to 2048 from 512, but then PHPS32 wouldn't start an all (why?). I tried PHPS64, but I was missing the JDK, so it wouldn't start either. After installing 64 bit JDK from here (oracle.com/technetwork/java/javase/downloads/…), PHPS64 started, but still ran out of memory after 10 minutes with default Xms of 750. But after I increased Xms to 2048, the profile opened in 2s!
  • manishie
    manishie over 8 years
    Crazy memory/cpu usage has been killing me for weeks. This fixed it right away. Thanks!
  • steampowered
    steampowered about 8 years
    Currently you must set the environment variable for the jdk OR edit the startup batch file. Then you must always start Webstorm with a batch file to use x64 (as of now). Here are IntelliJ's instructions for switching to the 64-bit JDK: intellij-support.jetbrains.com/hc/en-us/articles/…
  • Ron
    Ron almost 8 years
    Good hint but the problem was that we couldn't increase the memory because of the 32bit limitations.
  • Ernestas Stankevičius
    Ernestas Stankevičius almost 8 years
    I know, but though that maybe someone will need only to change memory and because SO is already like devs wiki.
  • v0d1ch
    v0d1ch almost 8 years
    yup mark directory -> excluded is a life saver, this needs to be in JetBrains docs
  • vknyvz
    vknyvz about 7 years
    thanks, i got a $3k macbook pro with 16gb ram still slows down after 2-3 hours of work, increased to 2.5gb let's see how this works out.
  • ylastapis
    ylastapis almost 7 years
    Thx for the tip :)
  • Andrew
    Andrew about 6 years
    Wow.... excluding vendor & giant asset folders. . . saved the day instantly, thanks! (PhpStorm)
  • Ron
    Ron almost 3 years
    maybe this is the modern way to go. my post is quite ancient :)
  • frutality
    frutality about 2 years
    Few years ago excluding directories worked for me very well. But with 2022 version I had to really delete logs and other temp files from excluded directories to reduce memory usage. However it's different with node_modules: excluding this directory helps.