PhpStormの使用可能メモリを増やす方法(Windows7 64bit)

2016.09.21 最近のバージョンは PhpStormの使用可能メモリを増やす方法 - ah-2.com

PhpStorm logo

PHPプロジェクトの開発にはJetBrainsのPhpStormを利用することが多くなった。
ただ、フレームワークを利用したりソースファイルが多いプロジェクトだと、PhpStormがもっさりする事もある。

その時にPhpStormの使用メモリを見てみると494MByteの上限いっぱいになっていることがある。 64bit OSを使っていてメモリも12GB搭載しているので、PhpStormのメモリ上限がもっと増えてほしいものだ。

実は何度か上限を増やそうと試したことがあって、
C:\Program Files (x86)\JetBrains\PhpStorm 8.0.3\bin\PhpStorm.exe.vmoptions
を編集して、-Xmxを増やしたことがある。

これだと -Xmx1024mにすると Error launching IntelliJ Platform Failed to create JVM: error code -4 のエラーが表示されてしまい、PhpStormが起動できなかった。 JavaVMの制約?のようだ。

phpstorm memory error Failed to create JVM

PhpStormが64bitとかに対応するまで待とうと思ったが、ふとPhpStormのフォルダを見るとPhpStorm64.exe PhpStorm64.exe.vmoptions というファイルがある。

PhpStorm64_exe_vmoptions

どうやら64bit版のようだ。

JetBrainsのTuning PhpStormにも

On Windows systems:
<PhpStorm installation folder>/bin/PhpStorm.exe.vmoptions
or
<PhpStorm installation folder>/bin/PhpStorm64.exe.vmoptions

と記載があるので使ってみても良いのではなかろうか?
早速試してみようと、64bitのjdk jdk-8u45-windows-x64.exeをJava SE Development Kit 8 Downloads から取得してインストール。

C:\Program Files (x86)\JetBrains\PhpStorm 8.0.3\bin\PhpStorm64.exe.vmoptions を編集する。
-Xms128m → 512m
-Xmx750m → 2048m にしてみた。

-Xms512m
-Xmx2048m
-XX:MaxPermSize=350m
-XX:ReservedCodeCacheSize=225m
-ea
-Dsun.io.useCanonCaches=false
-Djava.net.preferIPv4Stack=true
-Djsse.enableSNIExtension=false
-XX:+UseConcMarkSweepGC
-XX:SoftRefLRUPolicyMSPerMB=50

参考)-Xms,-Xmxオプションのドキュメント

-Xmssize
Sets the initial size (in bytes) of the heap. This value must be a multiple of 1024 and greater than 1 MB. Append the letter k or K to indicate kilobytes, m or M to indicate megabytes, g or G to indicate gigabytes.

The following examples show how to set the size of allocated memory to 6 MB using various units:

-Xms6291456
-Xms6144k
-Xms6m
If you do not set this option, then the initial size will be set as the sum of the sizes allocated for the old generation and the young generation. The initial size of the heap for the young generation can be set using the -Xmn option or the -XX:NewSize option.

-Xmxsize
Specifies the maximum size (in bytes) of the memory allocation pool in bytes. This value must be a multiple of 1024 and greater than 2 MB. Append the letter k or K to indicate kilobytes, m or M to indicate megabytes, g or G to indicate gigabytes. The default value is chosen at runtime based on system configuration. For server deployments, -Xms and -Xmx are often set to the same value. See the section “Ergonomics” in Java SE HotSpot Virtual Machine Garbage Collection Tuning Guide at http://docs.oracle.com/javase/8/docs/technotes/guides/vm/gctuning/index.html.

The following examples show how to set the maximum allowed size of allocated memory to 80 MB using various units:

-Xmx83886080
-Xmx81920k
-Xmx80m
The -Xmx option is equivalent to -XX:MaxHeapSize.

Java Platform, Standard Edition Tools Reference
java

そして、PhpStorm64.exeを起動してみると、メモリ上限が494Mから1981Mに増えている!

PhpStorm 32bit 64bit memory比較

PhpStormのメニューから Help > aboutを表示してみると JVMも64bitのものが利用されているようだ。

PhpStorm 32bit 64bit JVM 比較

なんとなくPhpStormが快適になったような気がするが、しばらく問題がないか試使用してみよう。

PhpStormをアップデートするとき、PhpStormショートカットが新規に作成されるとPhpStorm.exeを指れることがあるため、注意

  • 2015/07/09 PhpStorm9でもC:\Program Files (x86)\JetBrains\PhpStorm 9.0\bin\PhpStorm64.exe.vmoptionsを編集することでメモリ上限が増えました。

  • 2015/11/14 PhpStorm10.0.1でもC:\Program Files (x86)\JetBrains\PhpStorm 10.0.1\bin\PhpStorm64.exe.vmoptionsを編集することでメモリ上限が増えました。(Windows 10環境)

  • 2016/4/16 PhpStorm2016.1ではインストール中に64bit版を起動するかを選択できます。

PhpStrom2016.1_64bitlauncher
phpstorm2016_shortcut