Idea导致高内存消耗和高CPU占有率的可能解决方案:
1. 修改项目的 Configurations 配置对应的 VM options 值
Xmx
:Java Heap最大值,默认值为物理内存的1/4,最佳设值应该视物理内存大小及计算机内其他内存开销而定。Xms
:Java Heap初始值,Server端JVM最好将-Xms和-Xmx设为相同值,开发测试机JVM可以保留默认值。Xmn
: Java Heap Young区大小,不熟悉最好保留默认值。Xss
: 每个线程的Stack大小,不熟悉最好保留默认值;
vm options
优化(避免不优化相关的配置会很卡,而且热加载也会很慢问题),修改 Idea 下的 bin 目录下的 dea64.exe.vmoptions
文件
-Xms1024m
-Xmx1024m
-XX:MaxMetaspaceSize=512m
-XX:MetaspaceSize=512m
-XX:InitialBootClassLoaderMetaspaceSize=64M
-XX:NewRatio=2
-XX:SurvivorRatio=8
-XX:MaxTenuringThreshold=6
-XX:+UseConcMarkSweepGC
-XX:CMSFullGCsBeforeCompaction=5
-XX:+CMSParallelRemarkEnabled
-XX:+CMSClassUnloadingEnabled
-Xss1024k
-XX:+DisableExplicitGC
-XX:+ExplicitGCInvokesConcurrentAndUnloadsClasses
-XX:ReservedCodeCacheSize=240m
-XX:SoftRefLRUPolicyMSPerMB=50
-ea
-Dsun.io.useCanonCaches=false
-Djava.net.preferIPv4Stack=true
-XX:+HeapDumpOnOutOfMemoryError
-XX:-OmitStackTraceInFastThrow
-XX:+PrintGCDetails
-XX:+PrintGCTimeStamps
-Xloggc:D:/temp/gclog/idea.gc.log
-XX:+PrintHeapAtGC
2. 使用插件 choose runtime
idea
卡顿的本质原因是因为运行jre
环境,与项目的编译环境不相同
比如idea2019
版已经默认使用了自己封装的jre11
版本,我的项目使用的是jdk1.8
版本,旧版的idea自身通过Switch Boot SDK
功能可以切换,但是新版的已经不提供这个功能了,需要使用 idea 插件 –choose runtime
下载 idea 插件 Choose Runtiome
双击 shift
全局搜索,输入 choose runtime
,然后双击打开
点击 install
成功之后,重启 idea 双击 shift 全局搜索 choose runtime
,可以看到已经开启状态
该解决方案,来自 百度 - 小马驹Myles 的 彻底解决Idea内存消耗严重和CPU资源占比严重的问题