0,问题描述
IDEA写代码打字的时候卡顿,IDEA菜单栏也卡死开始转圈,大概需要30秒到1分钟恢复,而且卡死频率非常高,试了版本 Ultimate 2021.3和2021.3.1社区版,都有这个问题。
1,判断是内存占用还是CPU占用引起
方案1: 使用mac自带的活动监视器,卡顿的时候看是内存高,还是CPU占用高
方案2: 使用IDEA自带的内存指示器和活动监视器(推荐)
-
内存指示器:IDEA右下角打开内存指示器,看卡顿的时候是不是打满了
看起来内存占用比较少,问题应该不在这里。 -
活动监视器:菜单栏-帮助-诊断工具-活动监视器,可以看到各个进程的CPU占用实时变化,观察卡顿时候的情况。
-
发现JIT compiler在卡顿的时候占用率升高,有的时候是Plugin Java Bytecode Decompiler升高,不确定具体是哪个。
2,处理方法
网上找到一些方法,主要是针对内存不够用的,调整IDEA最大堆栈大小;另外还有个JIT compiler相关参数的优化,我都试了下:菜单栏,帮助-修改自定义VM选项,设定内存和cpu相关的参数
# 堆栈设置(主要修改Xmx,应对内存不足的情况)
-Xms256m
-Xmx12288m
-Xverify:none
-XX:+DisableExplicitGC
-XX:ReservedCodeCacheSize=720m
-XX:+UseConcMarkSweepGC
-XX:SoftRefLRUPolicyMSPerMB=50
-ea
-Dsun.io.useCanonCaches=false
-Djava.net.preferIPv4Stack=true
-Djdk.http.auth.tunneling.disabledSchemes=""
-XX:+HeapDumpOnOutOfMemoryError
-XX:-OmitStackTraceInFastThrow
# JIT 参数
# 设置用于编译的编译器线程数
-XX:CICompilerCount=2
# 开启分层编译
-XX:TieredStopAtLevel=1
# 控制最大数量嵌套调用内联
-XX:MaxInlineLevel=3
# 即时编译的东西(没弄懂...)
-XX:Tier4MinInvocationThreshold=100000
-XX:Tier4InvocationThreshold=110000
-XX:Tier4CompileThreshold=120000
发现并没有解决问题,所以猜测Plugin Java Bytecode Decompiler导致的CPU升高,这个关闭掉试下:
preference-插件-已安装:搜索“java bytecode decompiler",取消勾选,确定完成重启,问题解决。