ubuntu小技巧26--IntelliJ IDEA卡顿优化案例 & 思路

1 介绍

笔者最近使用IDEA发现非常卡,特别是在编写 md 和 txt 文档的时候,经常输入或者粘贴的时候卡几秒钟 。因此从多个方面进行了排查,最终发现是 IDEA 组件导致cpu使用很高,然后导致了卡顿现象。此处记录 IDEA 卡顿排查经验和一些很有用的优化方法,分享在此处以便于有需要的小伙伴查阅。
其它 IDEA 相关的使用技巧可以参考博文 ​​​JetBrains系列–工具使用方法​

2 排查方法

2.1 查看机器内存和IDEA内存

笔者笔记本 32G内存, ubuntu系统,关掉很多应用后空闲了20多G的内存,很明显不是本机器内存不够的原因;
继续怀疑是不是IDEA内存配置不合理导致的,因此多次调整 IDEA 的内存配置,多次调整 Xms, Xmx, XX:ReservedCodeCacheSize 等参数,发现无明显改善,且笔者IDEA实际使用的内存都没有超过1GB, 因此不是IDEA内存配置的问题;
笔者 vmoptions 配置如下:

-Xms500m
-Xmx2048m
-XX:ReservedCodeCacheSize=512m

编辑VM 配置方式:

Help->Edit Custom Vm Options…

ubuntu小技巧26--IntelliJ IDEA卡顿优化案例 & 思路_idea写markdown很卡


显示当前使用内存方法:

连续按 2次 shift shift, 弹出输入框,输入 memory 就会显示 Show Memory Indicator选项, 选择on即可,选择之后就会在右下角输出当前内存使用情况

ubuntu小技巧26--IntelliJ IDEA卡顿优化案例 & 思路_IDEA 卡顿优化方案_02


右下角显示内存使用情况:

ubuntu小技巧26--IntelliJ IDEA卡顿优化案例 & 思路_IDEA 卡顿优化方案_03

2.2 查看机器 CPU 和 IDEA CPU

笔者在使用的时候经常在编辑的时候非常卡顿,因此特意留意了下 CPU情况,发现有数次多个CPU达到 90-100%, 此处截图中有2个CPU很高;因此决定查看下哪些组件导致IDEA内高,按需调整相关组件。

下图是某一时刻机器CPU 和 IDEA 组件CPU(笔者有几次发现markdown CPU超过 200%了,但是没来得及截图),从图中可以发现IDEA组件cpu使用很高,其中 Markdown 组件占用很多CPU;因此可以大致猜到是markdown组件性能问题导致机器很卡的,停掉该组件后卡顿明显改善。

ubuntu小技巧26--IntelliJ IDEA卡顿优化案例 & 思路_IDEA性能优化方法_04


ubuntu小技巧26--IntelliJ IDEA卡顿优化案例 & 思路_IDEA 卡顿优化方案_05


选中 Help->Diagnostic Tools->Activity Monitor 即可查看到CPU使用情况,如下图,笔者使用该方法分析CPU使用情况,发现 Markdown 和 TextMate 都会占用较多的CPU,因此禁止了这两项插件,禁止后CPU使用率很低、使用很顺畅了。

ubuntu小技巧26--IntelliJ IDEA卡顿优化案例 & 思路_IDEA性能优化方法_06


ubuntu小技巧26--IntelliJ IDEA卡顿优化案例 & 思路_idea 启动很慢_07


导致笔者IDEA卡顿的两个元凶,笔者只禁用这两个就恢复正常了,实际情况可以按需禁止卡顿时候的组件。

ubuntu小技巧26--IntelliJ IDEA卡顿优化案例 & 思路_Intellij IDEA_08

ubuntu小技巧26--IntelliJ IDEA卡顿优化案例 & 思路_idea 启动很慢_09

3 IDEA 优化策略

3.1 启动卡顿解决方法:

启动卡顿可能受到机器配置影响,也可能受到IDEA内部插件影响.

  1. 检查确认机器配置,建议至少也要8GB内存
  2. 尽量用存放IDEA文件和下载的插件
  3. 减少不必要的插件(有些插件启动就占用好几秒钟)

3.2 运行卡顿解决方法:

  1. 检查确认机器配置,建议至少也要2核CPU,最好别用很古老的CPU
  2. 检查运行内存是否满了,若满了则要增加 IDEA 所使用的内存
  3. 调试当前CPU使用情况,如果CPU使用过多,那么就依次测试哪个组件占用较多cpu,然后关闭或替换该组件

可以通过如下方法查看 各个组件的启动时间(此处为笔者调整后的截图,各个组件启动时间很低了,现在基本5s左右启动了):
选中 Help->Diagnostic Tools->Analyse Plugin Startup Performance 即可查看到各个组件启动时间,如下图所示,笔者实际测试发现 Code With Me 、Kubernetes 都会占用很多时间,因此就将其禁止了;笔者主要 python + golang 开发,因此禁止了很多 Java 类型的组件。

ubuntu小技巧26--IntelliJ IDEA卡顿优化案例 & 思路_IDEA 卡顿优化方案_10


ubuntu小技巧26--IntelliJ IDEA卡顿优化案例 & 思路_idea写markdown很卡_11

ubuntu小技巧26--IntelliJ IDEA卡顿优化案例 & 思路_idea写markdown很卡_12


ubuntu小技巧26--IntelliJ IDEA卡顿优化案例 & 思路_idea写markdown很卡_13

4 说明

软件环境:
Ubuntu 21.04 Desktop
IDEA 2021.3.2 (Ultimate Edition)
8Cpu 32GbMemory
参考文档:
​​​IntellIJ Idea内存不足时怎么设置​​​​IntelliJ IDEA 运行卡顿解决方案​​​​JetBrains系列–工具使用方法​