idea 启动慢、编辑卡顿主因是冗余插件、索引损坏、构建配置不当及jvm参数不合理;应禁用/卸载非必要插件、手动清理.index和.idea目录、关闭自动导入与实时编译、按内存大小选用parallelgc或调优g1参数。

IDEA 启动慢、编辑卡顿,大概率是插件在拖后腿
IntelliJ IDEA 默认装了一堆插件,比如 Database Tools and SQL、MyBatis Plugin、GitToolBox,哪怕你从不连数据库或不用 MyBatis,它们也在后台扫描文件、监听变更、预加载语法树。实测关闭 3–5 个非必要插件,冷启动时间能缩短 40% 以上。
操作路径:File → Settings → Plugins(macOS 是 IntelliJ IDEA → Preferences → Plugins),重点关掉这些:
- 没用过数据库:关掉
Database Tools and SQL、SQL Highlighter - 不用前端框架:关掉
Vue.js、React Native、JavaScript Debugger(除非真在调试 JS) - 不写 Groovy/Scala/Kotlin DSL:关掉对应语言支持插件(
Groovy、Scala等) - 第三方插件如
Key Promoter X、Translation建议卸载而非禁用,禁用仍占内存
索引重建卡住、CPU 暴涨,别硬等,手动清理更稳
IDEA 卡在 “Indexing…” 或 “Scanning files…” 不是磁盘慢,而是索引损坏或路径冲突。常见于项目迁移到新目录、切换 Git 分支后大量文件变动、或 .idea 目录被误删又恢复。
直接清理比等它自动恢复快得多:
- 先退出 IDEA
- 删掉项目根目录下的
.idea文件夹(不是隐藏文件,就是那个带小齿轮图标的文件夹) - 删掉用户缓存目录里的索引:
$HOME/.cache/JetBrains/IntelliJIdea2023.3/index(路径中的2023.3换成你实际版本号) - 重启 IDEA,它会重新生成
.idea并触发轻量级索引(比全量快很多)
注意:.idea 里存了本地运行配置、断点设置、代码风格偏好,删前可备份 .idea/runConfigurations/ 和 .idea/codeStyles/ 子目录。
Gradle/Maven 项目一打开就卡死,检查是否启用了“自动导入”+“实时索引”双叠加
大型 Java 项目中,Auto-import 和 Build project automatically 同时开启,会让 IDEA 在每次保存 pom.xml 或 build.gradle 后立刻触发依赖解析 + 类路径重算 + 索引更新——三件事串行,CPU 占满,UI 冻结。
建议拆开控制:
- 关掉
Settings → Build → Build Tools → Gradle → Run tests using改为Gradle Test Runner(避免 IDEA 自己解析测试类) - 关掉
Settings → Compiler → Build project automatically(手动按Ctrl+F9编译更可控) - 保留
Settings → Build → Build Tools → Maven → Importing → Import Maven projects automatically,但把Auto-refresh设为Only on explicit action - 在
Settings → Editor → General → Code Completion里关掉Autopopup code completion,防止打字中途弹窗抢焦点
内存始终不够用?别只调 -Xmx,先看是不是 JVM 参数配错了
很多人改了 Help → Change Memory Settings 把 -Xmx 调到 4g,结果还是卡——因为 IDEA 默认用的是 G1GC,而老项目或低配机器上,G1 在小堆(4g)又导致 STW 时间变长。
更稳妥的组合是:
- 内存 ≤ 8GB 物理内存:用
-XX:+UseParallelGC替代 G1,响应更稳 - 内存 ≥ 16GB:保留 G1,但加
-XX:MaxGCPauseMillis=200控制停顿 - 必须加
-XX:+HeapDumpOnOutOfMemoryError,下次卡死时能自动生成java_pid*.hprof,用jvisualvm查哪块对象泄漏 - 参数写在
bin/idea.vmoptions(Windows 是idea64.exe.vmoptions),改完重启生效
真正卡得离谱时,jps -l 看下有没有多个 com.intellij.idea.Main 进程残留——有就 kill 掉,再启动。











