idea卡顿和占用高怎么办??

Shi Yi2025/08/30fixidea

背景

最近闲的时候看了看一个交流群,发现佬友在交流关于 idea 卡顿的问题,并且提出了一些具体方案。


前置知识

众所周知,idea 是用 java 写的,运行的 JDK 是 JetBrains Runtime,java 这语言性能本身肯定是不能和 go 和 rust 相提并论的,而且在 idea 这么丰富的功能下,很难避免卡顿和内存占用高。

TIP

JetBrains Runtime (JBR) 是 JetBrains 公司维护的一个 OpenJDK 的分支(fork)。简单来说,它是一个为 JetBrains 旗下所有桌面产品(如 IntelliJ IDEA, PyCharm, WebStorm 等)量身定制和优化的 Java 运行环境 (JRE/JDK)。修复了各种已知的 OpenJDK 和 Oracle JDK 错误,并提供了更好的性能和稳定性。该版本目前最新的是 JDK 21。


解决方案

1. 提高 idea 最大堆内存(加钱)

在主菜单中,前往「帮助」,可以发现一个类似「更改最大堆内存」的选项,或者可以改 idea 的虚拟机参数。如果你的内存足够大,你可以尝试这个选项来减缓卡顿现象。


2. 更改垃圾回收器为 ZGC

在你的 idea 的虚拟机参数上加上:

-XX:+UseZGC            // 使用 ZGC
-XX:+ZGenerational     // 启动分代 ZGC,JDK 21 才引入的,但是我们的 idea 最新的 JDK 刚好是 JDK 21

TIP

ZGC 是一款由 Oracle 开发的、可伸缩的、低延迟的垃圾回收器。它的设计目标只有一个,也是它最引以为傲的特点:无论你的 Java 堆内存有多大(从几百 MB 到十几 TB),它的「Stop-The-World」(STW) 暂停时间都能稳定地控制在 1 毫秒以下。


3. 尝试更换 JDK

是的,你没听错,idea 是允许你更换 JDK 的。意思是你可以不使用 JetBrains Runtime,你可以直接更换到 JDK 24 甚至是 JDK 25,并开启 紧凑对象头

-XX:UseCompactObjectHeaders

它可以大大减少 idea 的内存占用。

WARNING

但是嘛,这方案有一些缺点,因为 idea 是因为 JetBrains Runtime 才能完美渲染自己的 UI 和字体,你如果更换的话,UI 和字体的体验会大大打折扣。可能还会遇到其他的问题(我刚换的时候,发现 UI 和字体让我很不舒服,我就立马换回来了)。


📝 参考

参考文献:https://www.jetbrains.com/zh-cn/help/idea/switching-boot-jdk.htmlopen in new window

Last Updated 7/19/2026, 1:52:11 PM