当前位置: 首页 > news >正文

解决phpstorm运行很卡问题!

为什么80%的码农都做不了架构师?>>>   hot3.png

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然后修改其中的内容才行

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

添加和修改以下代码:

 
  1. -Xms256m

  2. -Xmx1024m

  3. -XX:MaxPermSize=350m

  4. -XX:ReservedCodeCacheSize=225m

  5. -XX:+UseConcMarkSweepGC

  6. -XX:SoftRefLRUPolicyMSPerMB=50

  7. -ea

  8. -Dsun.io.useCanonCaches=false

  9. -Djava.net.preferIPv4Stack=true

  10. -Dawt.usesystemAAFontSettings=lcd

  11. -Dawt.java2d.opengl=true

  12. -XX:+HeapDumpOnOutOfMemoryError

  13. -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卡的问题了。

 
  1. -Dawt.usesystemAAFontSettings=lcd //解决JDK出现Picked up _JAVA_OPTIONS

  2. -Dawt.java2d.opengl=true //如果硬件加速已经被enable,可以通过这个选项来提高Swing GUI速度,默认值为false

 
  1. -Xms256m //初始分配的堆内存

  2. -Xmx1024m //最大允许分配的堆内存

  3. -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。

转载于:https://my.oschina.net/sjcehui2010/blog/1860197

相关文章:

  • 今天需要获取一个网站的web服务反馈回来的数据,找到份不错的帖子关于WebClient类的使用,记录下来·...
  • CentOS替换系统自带JDK
  • 木木璐(林璐)来报到
  • Redis的内存
  • VS快捷键
  • 腾讯技术分享:微信小程序音视频技术背后的故事
  • 如何获取桌面截图
  • matlab练习程序(图像放大/缩小,双线性插值)
  • Python数据类型:双端队列deque-比列表list性能更高的一种数据类型
  • Unity3dUGUI图片循环轮播效果
  • P1379 八数码难题
  • Android开发之漫漫长途 Ⅷ——Android Binder(也许是最容易理解的)
  • 深入理解计算机操作系统(三)
  • GrapeCity Demo示例展示:如何用Spread.Sheets来创建应用|附演示文件下载
  • Glovo完成1.15亿欧元C轮融资,成为欧洲相关技术聚合中心
  • [LeetCode] Wiggle Sort
  • [Vue CLI 3] 配置解析之 css.extract
  • [译] 理解数组在 PHP 内部的实现(给PHP开发者的PHP源码-第四部分)
  • 2017-09-12 前端日报
  • 30秒的PHP代码片段(1)数组 - Array
  • CAP理论的例子讲解
  • ES2017异步函数现已正式可用
  • iOS仿今日头条、壁纸应用、筛选分类、三方微博、颜色填充等源码
  • jdbc就是这么简单
  • JDK9: 集成 Jshell 和 Maven 项目.
  • MaxCompute访问TableStore(OTS) 数据
  • React+TypeScript入门
  • Vue实战(四)登录/注册页的实现
  • 测试开发系类之接口自动化测试
  • 从 Android Sample ApiDemos 中学习 android.animation API 的用法
  • 从0搭建SpringBoot的HelloWorld -- Java版本
  • 讲清楚之javascript作用域
  • 快速体验 Sentinel 集群限流功能,只需简单几步
  • 前端
  • 前端技术周刊 2018-12-10:前端自动化测试
  • 手机app有了短信验证码还有没必要有图片验证码?
  • 微信支付JSAPI,实测!终极方案
  • 应用生命周期终极 DevOps 工具包
  • ​​​​​​​ubuntu16.04 fastreid训练过程
  • ​虚拟化系列介绍(十)
  • # 深度解析 Socket 与 WebSocket:原理、区别与应用
  • #Lua:Lua调用C++生成的DLL库
  • (13)Hive调优——动态分区导致的小文件问题
  • (4)通过调用hadoop的java api实现本地文件上传到hadoop文件系统上
  • (echarts)echarts使用时重新加载数据之前的数据存留在图上的问题
  • (Redis使用系列) Springboot 使用redis的List数据结构实现简单的排队功能场景 九
  • (八)c52学习之旅-中断实验
  • (论文阅读30/100)Convolutional Pose Machines
  • (三)mysql_MYSQL(三)
  • (十二)python网络爬虫(理论+实战)——实战:使用BeautfulSoup解析baidu热搜新闻数据
  • (十六)串口UART
  • (顺序)容器的好伴侣 --- 容器适配器
  • (转)关于pipe()的详细解析
  • (转载)跟我一起学习VIM - The Life Changing Editor
  • (轉)JSON.stringify 语法实例讲解