我正在将Win7 64bit下的PHPStorm与64bit 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 |
-
确定要使用64位Java?关于所使用的Java版本,"帮助|关于"是什么意思?"我在Google周围搜索,但似乎没有人希望内存超过512MB" —那就是正确的GC会很烦人。
-
wtf ...你是对的,它说的是Java x86。为什么PHPStorm不使用系统上安装的主要Java?
-
因为1)PhpStorm随附了捆绑的x86 Java,它是它尝试的第一个Java。只有这样,它才会查找其他Java安装-检查PhpStorm.bat以获得详细信息(环境变量和顺序)2)应该使用PhpStorm64.exe而不是PhpStorm.exe(与.vmoptions文件相同)–应该是PhpStorm64.exe.vmoptions
-
注意:我所说的是PhpStorm v8(当前处于EAP阶段),而不是v7,后者没有这些64位特定文件。
-
啊!好的...很好:) v8是否足够稳定,可以使用它?
-
您为什么不尝试一下?它对我来说很好(相对较小的项目)。但是我不知道它如何在您的计算机/项目上运行(特别是考虑到您的要求)-毕竟是EAP构建-并非所有代码都针对速度和性能进行了优化。内存消耗(确定您知道软件开发的工作原理:首先是功能,之后是优化)。
现在,更改PHPStorm的内存设置具有菜单选项:
-
很好的提示,但问题是由于32位的限制,我们无法增加内存。
-
我知道,但是尽管如此,也许有人只需要更改内存,因为SO已经像devs wiki。
-
谢谢,我得到了一个售价为3k的Macbook pro,配备16gb内存,经过2-3小时的工作后仍然变慢,增加到2.5gb让我们看看它是如何工作的。
确保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位。我添加了WEBIDE_JDK环境变量,现在当我想启动程序时什么也没有发生...
-
intellij-support.jetbrains.com/entries/-也许您提供了错误的路径?
-
我很确定我有正确的路径...但是v8似乎可以正常工作,我可以操纵内存设置!您知道此选项是否很好用吗:XX:MinHeapFreeRatio=15?
-
抱歉-根本不是Java / JVM人员。
-
为了解决这个问题,将这个答案和最低答案结合在一起。
-
感谢您提供信息,我只是对WebStorm这样做,现在它的工作效果更好。
-
我有一个试图在PhpStorm 9.0.2中打开的81MB xdebug分析器输出。经过十多分钟的尝试,它给了我"内存不足"的错误。我意识到我正在运行32位PHPS。我将Xmx从512增加到2048,但随后PHPS32无法全部启动(为什么?)。我尝试了PHPS64,但缺少了JDK,因此也无法启动。从此处(oracle.com/technetwork/java/javase/downloads/)安装64位JDK后,PHPS64启动,但在10分钟后仍用完内存,默认Xms为750。但是在将Xms增加到2048后,配置文件在2秒内打开!
阅读这篇文章后,我切换到64位版本(在安装正确的JDK之后),并将指定内存增加到2GB只是为了将其关闭。但是我仍然跌到了顶峰,冻结了。
最终意识到,我跟踪了我的bower_components文件夹。带有大量javascript文件等的文件夹。基本上会吃掉世界上所有的公羊(我也排除了node_modules文件夹,同一个故事)。因此,我右键单击文件夹>将目录标记为>已排除。经过一些垃圾收集后,PhpStorm的内存占用减少到了5-600mb,这似乎是合理的。
-
疯狂的内存/ CPU使用率已使我丧命数周。这马上解决了。谢谢!
-
当前,您必须为jdk设置环境变量,或者编辑启动批处理文件。然后,您必须始终使用批处理文件启动Webstorm才能使用x64(到目前为止)。以下是IntelliJ的有关切换到64位JDK的说明:intellij-support.jetbrains.com/hc/en-us/articles/
-
yup mark目录->排除是救生员,这需要在JetBrains文档中
-
哇...。不包括供应商和巨型资产文件夹。 。 。立即保存了一天,谢谢! (PhpStorm)
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足够了)。