当开启多项目多环境或复杂项目大项目时,新版IDEA会频繁卡顿冻结UI。
因为IDEA是Java写的,卡顿自然就是因为频繁Full GC导致的。
新版IDEA使用了G1垃圾回收器,当期望STW内一直无法有效回收大对象时,就会触发Full GC(G1的Full GC和CMS一样是使用单线程进行的,所以很慢),循环往复就会频繁Full GC导致IDEA频繁卡顿(UI 冻结)。
因此可以通过适当调高期望STW时间和内存分配空间来进行JVM调优
- 打开:帮助 ➡ 编辑自定义虚拟机选项
- 扩大内存分配(启动时堆内存设为1G;最大堆内存设为8G;JIT代码缓存设为2G)
-Xms1024m
-Xmx8192m
-XX:ReservedCodeCacheSize=2048m
- 调高G1垃圾回收器的期望STW时间(一次GC的期望停顿时间,默认200ms,调高到500ms)
-XX:MaxGCPauseMillis=500