问题描述
大多数人都知道使用idea时,发现idea内存消耗比较严重,尤其开启了tomcat后,过一段时间,idea的运行内存会被吃满,最近还发现编辑代码,提交代码,CPU占比可以直接飙升到100%,风扇呼呼作响,于是开始找各种解决方案。
解决方案:
1、卸载多余不常用的插件;
2、设置某些idea配置,比如去掉某些动画、编译检查什么的;
3、调整idea.vm.properties中的jvm大小。
方案说明
1、卸载插件:此方案具体要看卸载的什么插件,如果没有找到那个真正消耗资源的元凶插件,优化效果基本无效。在很长的时间中,我也怀疑是某个插件消耗了CPU,最后通过网友的提示,通过Idea 自带的监控功能–Help/Activity Monitor,发现CPU打满的时候,插件Alibaba 的代码规范检查插件占有CPU最高,于是禁用再去测试,发现后面的代码编辑和提交CPU都保持正常的水平了;
2、调整idea的设置:这个方案只能减轻运行压力,基本没什么效果;
3、调整idea 的运行内存:此方案没有解决本质问题,只能暂时解决,而且撑下去的时间不会太长,举例来说,我曾经设置了6g的内存,但还是很快就会被吃掉。
最终方案
在网上搜索方案的时候,一直发现有人提到,idea卡顿的本质原因是因为idea的运行jre环境,与项目的编译环境不相同,比如idea2019版已经默认使用了自己idea封装的jre11版本,而我的项目中使用的是官方的jdk1.8版本,但是一直没有找到怎么去替换idea默认的jre环境,旧版的idea自身通过Switch Boot SDK 功能可以切换,但是新版的idea中已经不提供这个功能了,所以需要用另一种方案,安装idea的插件–choose runtime。
choose runtime 安装后(2020版本之前的idea可能需要重启),之后去Help/Find Action,搜索 “choose runtime”,之后打开这个选项。
这时候idea 就会开始检测可以设置的jre环境,这个搜索加载会比较耗时,大家要耐心一点。
这时候idea 就会开始检测可以设置的jre环境,这个搜索加载会比较耗时,大家要耐心一点。
之后会出来好多的jre版本替换选项,一定要选择自己安装的官方版本的jre,之后重启idea,大功告成!
验证效果
在idea 的About中,可以看到idea当前依赖的运行环境(Runtime version),已经变成了刚才指定的官方jre版本。
之后可以打开项目与tomcat,进行效果测试了,经过我的测试,本地环境下,jvm占用不会超过1g,基本都是维持在600-700m,哪怕在多开一个idae窗口去运行tomcat,也不会到1g的内存使用,这时候可以把idea.vm的最大jvm运行内存调整到2g了,发现依然不卡顿。