解决phpstorm运行很卡问题

phpStorm一旦达到这个临界值,所有智能提示、自动补全都失效了
这TM就很尴尬了,顿时感觉自己就是个废人了,纯手写代码跟便秘一样

众所周知phpStorm基于JAVA,那么这个内存限制肯定跟JAVA的虚拟机参数有关
来到phpStorm的安装目录,例如我的安装目录是
C:\Program Files (x86)\JetBrains\PhpStorm 2016.1\bin

找到PhpStorm.exe.vmoptions或 PhpStorm64.exe.vmoptions64位系统用这个会好一些

在PhpStorm2017之后的版本中,修改bin目录下的vmoptions文件可能是无效的这时需要打开PhpStorm,
在顶部菜单中选择Help – Edit Custom VM Options然后修改其中的内容才行

使用任意文本编辑器打开,将里面的数字调大即可

添加和修改以下代码:

-Xms256m
-Xmx1024m
-XX:MaxPermSize=350m
-XX:ReservedCodeCacheSize=225m
-XX:+UseConcMarkSweepGC
-XX:SoftRefLRUPolicyMSPerMB=50
-ea
-Dsun.io.useCanonCaches=false
-Djava.net.preferIPv4Stack=true
-Dawt.usesystemAAFontSettings=lcd
-Dawt.java2d.opengl=true
-XX:+HeapDumpOnOutOfMemoryError
-XX:-OmitStackTraceInFastThrow
其实这时候需要使用64位版本的 PhpStorm64.exe 比较好

双击PhpStorm64.exe,提示需要64位的JDK(如果你没安装过的话)

然而JAVA官网下到的都是JRE,搜索引擎搜出来的多半是JRE,更有打着JDK名号的JRE,要么就是32位的JDK

最后终于在这里找到个能用的。(P.S. 不要点那个大大的“立即下载”按钮,拉到下面找普通下载即可)

--------------配置文档中的参数说明-----------------------

phpStorm是使用JAVA开发的。由于IDE提供源文件关键字渲染功能,我们对文件的任何编辑或移动鼠标,都会触发渲染操作。而phpstorm默认的JAVA环境并没有利用机器的硬件加速技术去实现实时渲染,因此当然会让系统卡死。而只要在JAVA环境中让系统默认使用硬件加速,就可以解决占用系统资源过大,让phpstorm卡的问题了。

-Dawt.usesystemAAFontSettings=lcd //解决JDK出现Picked up _JAVA_OPTIONS
-Dawt.java2d.opengl=true //如果硬件加速已经被enable,可以通过这个选项来提高Swing GUI速度,默认值为false
-Xms256m //初始分配的堆内存
-Xmx1024m //最大允许分配的堆内存
-XX:MaxPermSize=350m //最大允许分配的非堆内存

其中堆内存和非堆内存的区别为:

Java虚拟机具有一个堆,堆是运行时的数据区域,所有类实例和数组的内存均从此处分配。堆是在Java虚拟机启动时创建的。在JVM中堆之外的内存成为非堆内存(Non-heap memory)

堆内存分配

初始分配的堆内存由-Xms指定,默认是物理内存的1/64;最大分配的堆内存由-Xmx指定,默认是物理内存的1/4。默认空余堆内存小于40%时,Jvm就会增大堆直到-Xmx的最大限制;同理,空余堆内存大于70%时,JVM会减少堆直到-Xms的最小限制。因此一般设置-Xms、-Xmx相等以避免每次GC后调整堆的大小。 
说明:如果-Xmx不指定或者指定偏小,应用可能会导致java.lang.OutOfMemory错误,此错误来自JVM,不是Throwable的,无法用try……catch捕捉

非堆内存分配

JVM使用-XX:PermSize设置非堆内存初始值,默认是物理内存的1/64;由XX:MaxPermSize设置最大非堆内存的大小,默认是物理内存的1/4。





猜你喜欢

转载自blog.csdn.net/top18oo/article/details/80373631