关于jvm:PHPStorm / Webstorm将内存增加到512MB以上

PHPStorm/Webstorm increase memory to more than 512MB

我正在将Win7 64bit下的PHPStorm64bit Java (latest version I guess)一起使用,并且目前正在处理一个疯狂而庞大的项目。 有很多包含10k LOC的类。 因此,我的PHPStorm有时会耗尽内存。

我得到一个很好的Out-of-Memory对话框,建议增加内存设置。 我目前已在PhpStorm.exe.vmoptions中设置:

1
2
3
4
5
6
7
8
9
10
11
-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

问题是:当我增加要在此文件中使用的内存时,在启动程序时出现以下错误:

Failed to create JVM: Error code -4

我在Google周围搜索,但似乎没人希望内存大于512MB

有人知道我可以做什么使用PHPStorm,而不会再遇到麻烦吗?

当然,我可以重置缓存,但这不是永久解决方案,对吗?

我在某处读到,将此行添加到我的vmoptions是个好主意,但我看不出有什么区别:

1
2
3
-server
....
-XX:MinHeapFreeRatio=15


现在,更改PHPStorm的内存设置具有菜单选项:enter image description here


确保PhpStorm使用64位Java,而不是捆绑一个(32位)。您在Help | About中进行检查。

一般而言:使用64位Java时,您不必更改该值,因为它的工作原理与32位Java有所不同。

1)PhpStorm附带了捆绑的x86 Java,它是它尝试的第一个Java;然后,它会查找其他Java安装-检查PhpStorm.bat了解详细信息(什么环境变量和顺序)。通过定义这些环境变量之一(它将指向您的64位Java安装),您可以告诉PhpStorm使用而不是捆绑的变量。

2)PhpStorm v8(当前处于EAP阶段)附带特定于64位的文件:您应该使用PhpStorm64.exe而不是PhpStorm.exe(与.vmoptions文件相同-应该为PhpStorm64.exe.vmoptions)。

我不确定PhpStorm v7如何与64位Java配合使用-从未亲自尝试过这种方法。

选择将在其下运行IDE的JDK版本

https://intellij-support.jetbrains.com/entries/23455956-Selecting-the-JDK-version-the-IDE-will-run-under


阅读这篇文章后,我切换到64位版本(在安装正确的JDK之后),并将指定内存增加到2GB只是为了将其关闭。但是我仍然跌到了顶峰,冻结了。

最终意识到,我跟踪了我的bower_components文件夹。带有大量javascript文件等的文件夹。基本上会吃掉世界上所有的公羊(我也排除了node_modules文件夹,同一个故事)。因此,我右键单击文件夹>将目录标记为>已排除。经过一些垃圾收集后,PhpStorm的内存占用减少到了5-600mb,这似乎是合理的。


PhpStorm 2016.1及更高版本

从PhpStorm 2016.1开始,应使用JAVA_HOME环境变量而不是WEBIDE_JDK_64指向您的JVM路径。

PhpStorm 2016.1之前的版本

就像@LazyOne的答案中提到的那样,从PhpStorm v8(已发布)开始,您可以使用PhpStorm64.exe。但是我找不到关于如何为其指定JVM路径的任何描述。解释如何选择JDK版本的文档似乎有些过时了。

经过研究,我发现您应该创建WEBIDE_JDK_64环境变量,该变量应指向JRE 64位安装路径。完成此操作后,您将能够启动PhpStorm64.exe。

默认情况下,它将最大内存设置为750mb。如果需要更多,可以修改C:\\Program Files (x86)\\JetBrains\\PhpStorm 8\\bin\\PhpStorm64.exe.vmoptions。但是,更好的主意是编辑用户的vmoptions文件。只需将C:\\Program Files (x86)\\JetBrains\\PhpStorm 8\\bin\\PhpStorm64.exe.vmoptions复制到%USERPROFILE%\\.IntelliJIdea12\\idea.vmoptions并将-Xmx750m设置为更高的值。


只需File> Invalidates Caches / Restart...就可以为我工作。 ????


我在应用程序中发现了一个日志文件,由于一个错误,日志文件在几秒钟内从几KB增长到超过2 GB。 Webstorm试图索引此2 GB日志文件,并且内存不足。删除日志文件解决了该问题(然后修复错误阻止了日志文件的增长)。

在此之前,我还尝试运行x64 JDK并将XMX增加到2048。但是最后,只有2048 MB的64位环境是不够的(尽管以前总是512 MB足够了)。