写在前面的话1:我在撰写这篇博客时候,所用的IntelliJ IDEA版本是IntelliJ IDEA 2022.3.3 (Ultimate Edition),你需要知道可能对于不同的IntelliJ IDEA版本会有一定的差异
写在前面的话2:如果我这篇博客可以帮助到你,请给我一个免费的赞和收藏,谢谢
问题描述
我遇到的卡顿问题主要体现在编辑代码时,输入中文时,cpu使用率飙升到100%,并且中文已经在键盘中打完了,但是展示到IntelliJ IDEA页面上还需要5秒以上,已经卡到没办法做研发工作了。
一些相关的因素
在特别卡的时候,我有更换过一次项目。我在做这个项目之前,虽然也卡,但是不会类似于这个项目这么卡。
但同时我在这期间有升级过macOS的系统版本和IntelliJ IDEA的版本,变量因素很多,加大了问题排查定位的难度。
排查思路
我以前很喜欢写流水账,但是这次来来回回花了我好几个月才解决,所以我已经回忆不起来我到底是怎么一步一步排查的了,我尝试写一些我还能想起来的作为排查思路
检查内存、硬盘、cpu使用率
这是我最开始的考虑,macOS上有一个系统应用,叫“活动监视器“,这里面可以比较清晰的看到IntelliJ IDEA的cpu、内存、硬盘、网络的使用情况,当然你也可以在终端中使用top
或者htop
来确认。
通过我的观察,我发现我输入中文的时候,我的八个很容易就达到了100%,CPU使用率轻轻松松超过400%
如果你使用IntelliJ IDEA开发程序,那么Java应用的卡顿问题如何处理,你应该是比较熟悉的,对吧?但是如果没有源码,我们直接去查IntelliJ IDEA的线程信息其实帮助也不是很大,我稍微花了一点时间在网络上翻找了一些帖子。
IntelliJ IDEA其实是有自己的分析工具,其位置在于【顶栏->Help->Diagnostic Tools->Activity Monitor】
说个题外话,不建议安装IntelliJ IDEA的中文语言包,因为互联网上大量文档主要还是用英文来写的,我在解决这个IntelliJ IDEA卡顿问题的时候也在IntelliJ IDEA自己的论坛看了很多帖子,如果你长期使用中文语言包,对于一些词汇太陌生会导致自己处理问题比较麻烦。
从这个工具里面咱们就可以看到具体什么进程导致CPU的高占用,对于进程名不熟悉的,借助于Google也可以很快了解具体是做什么的。
不同的使用场景下,会存在不同的原因,并且因为IntelliJ IDEA还支持了插件,所以导致卡顿的原因更是不计其数,但只要你懂得如何去排查问题,这个事儿就变得没有那么困难了。
一个一个的禁用插件来排查
这个方法是很多人都有提到的,并且在实际应用上是真的有效果!如果你安装的插件比较多,那么请一个一个的disable掉,利用排查法找到具体是哪个插件所导致的,插件越多理论上时间会比较长,你也可以选择以五个为单位快速定位一个大致的范围。
常见的一些解决方案
修改IntelliJ IDEA的内存
放到第一位肯定是相当重要的,但IntelliJ IDEA在扫描、编译、处理各类问题的时候,确实是需要很大内存的。我个人目前是给到了6G。
网上有各种各样教你修改配置文件的方法,但是IntelliJ IDEA自己就提供了这样的功能,你直接需要点击【顶栏->Help->Edit Custom VM Options】就可以在IntelliJ IDEA编辑框打开一个以.vmoptions
结尾的文件。如果之前已经有-Xmx
属性那么就改一下,如果没有就新起一行加上即可,如果你想和我一样配置成6G,那么修改属性值应该是-Xmx6144m
即可,这表示最小堆内存位6G
使用更高版本的jdk以及IntelliJ IDEA的新界面
java 原来使用的是OpenGL,但是macOS从Mojave开始启用了新的Metal框架,jetbrains对此也是早早布局,我这里放两个链接供你了解更多的内容:
- Metal for IntelliJ Platform | The JetBrains Platform Blog
- https://youtrack.jetbrains.com/issue/JBR-745/Improve-java2d-rendering-performance-on-macOS-by-using-Metal-framework
当你的分辨率非常高,或者是显示器非常的多时,渲染的压力就会越大,cpu就会飙升,IntelliJ IDEA也会变卡。截止目前IntelliJ IDEA已经发布了New UI
,虽然被标记为Beta
,但从我个人使用情况来说,我还没遇到过问题。反而新版本的UI更让我聚焦我的开发工作,用了几天很快就适应了。
简单来说,你需要jre 17及以上版本且IntelliJ IDEA版本保持为最新版即可。
插件导致的卡顿
git插件
排查思路很简单,就是我在上一个章节中提到的一个一个的禁用插件来排查,如果你已经确定是IntelliJ IDEA的git插件导致的卡顿,但是你又想像我一样继续使用这个git插件,那么应该怎么解决呢?
这个问题我是偶然一次浏览到的,macOS 下 Intellij IDEA 变得特别卡该如何解决? - 知乎 其中第一个高赞回答就是解决方法,其实就是.gitignore
文件设置不合理,导致git插件索引了大量无意义的文件,我目前维护的这个项目git下同时存放了多个子系统的代码,文件数量和层级都非常的夸张。
我在我本地修改了.gitignore
文件的内容,去掉了一些我不需要管的文件夹后,git插件导致的IntelliJ IDEA卡顿问题就迎刃而解了。
其他插件
- 如果你确定你不需要,比如alibaba的p3c检查,或者是一些其他的检查扫描类插件,可以disable的都尽量卸载即可。
- 对于一些比较小众的插件,你可以尝试通过GitHub直接联系作者以寻求解决方案。