侧边栏壁纸
博主头像
钱学超博主等级

火星人,1万小时法则的忠实拥趸。技术宅,象棋和羽毛球爱好者,马拉松PB成绩:4小时零8分。坚持认为算法是计算机的灵魂。喜欢解决问题,喜欢手工,喜欢与朋友们聊天喝酒吹牛X。

  • 累计撰写 81 篇文章
  • 累计创建 447 个标签
  • 累计收到 88 条评论
标签搜索

目 录CONTENT

文章目录

在Mac上IDEA占用CPU很高,kernel_task占据cpu400%以上

钱学超
2022-10-02 / 4 评论 / 0 点赞 / 2,990 阅读 / 1,517 字 / 正在检测是否收录...
  1. 2019年MacBook 16寸,高配1T硬盘,16G内存。
  2. 外接了一个显示器,Type-C接口的显示器,27寸,支持一线连,一根Type-c既能充电,又能拓展显示接口
  3. IDEA升级为最新版本,2022.2.2 。 MacOS升级为最新版12.6(我怀疑就是它的坑),没法降级了。
  4. 因为外接显示器,外接键盘,平时就不太用macbook内置显示器。平时都是合起来放一边的。
  5. 平时用的无所谓,只要稍微有一点计算量稍高的任务,比如debug,编译,即便是连上真机打包,都会导致笔记本风扇狂转。
  6. 最近发现(就是升级了MacOS,可能是补丁,不是什么大版本),再出现这种情况时,经常会卡的不行,鼠标都动的很卡顿。
  7. 任何程序点击一下,反应时间都需要十秒八秒的。小彩球旋转起来就没完,风扇狂转,心在滴血。
  8. 一遍卡顿,一遍打开“活动监视器”,发现IDEA占据cpu100%左右,这还不可怕,kernel_task占据cpu达到400%,500%,最高到过900%
  9. 我的天,这个计算也是够可以的。总共CPU也才8核,按说800%就到了极限了吧。实际卡的状况确实是没法用。
  10. 调查半天,发现说啥的都有。更换type-c接口,外接电源,全都试过了。发现不管用。
  11. 回家之后也是外接显示器,也是同样插右边,也是typec的接口,只不过是typec转hdmi不带电源。意外发现很少出现这种情况。
  12. 那么,就是跟数据线以及充电线合二为一的问题了。关键这没有办法改。
  13. 显示器买了两三年了,之前都没有发现这个问题。就是最近这一两个月。或许更久吧,这一两个月确实经常用到CPU密集型的工作。
  14. 没有解决方案,那就一点点改善吧。
  15. 首先,IDEA是罪魁祸首,一切都是它引起的。所以先处理处理它的CPU过高的问题。
  16. 打开jvm参数设置,调整参数值。最重要一点,加上 -server,这会让java运行时优化内存和堆栈信息,效率比debug高得多。
  17. 贴上我的参数配置:
    注意:
    -X 是非标准参数。这些参数不是虚拟机规范规定的。因此,不是所有VM的实现(如:HotSpot,JRockit,J9等)都支持这些配置参数
    -XX 是不稳定参数,这类参数的设置会引起JVM运行时性能上的巨大差异,配置好可以提高JVM性能,配置不好会使JVM出现各种问题, 甚至造成JVM崩溃
-server
-Xms1024m
-Xmx2048m
-Xverify:none
-XX:ReservedCodeCacheSize=500m
-XX:+UseConcMarkSweepGC
-XX:SoftRefLRUPolicyMSPerMB=50
-ea
-Dsun.io.useCanonCaches=false
-Djava.net.preferIPv4Stack=true
-Djdk.http.auth.tunneling.disabledSchemes=""
-XX:-OmitStackTraceInFastThrow
-XX:+HeapDumpOnOutOfMemoryError

#JIT
-XX:CICompilerCount=2
-XX:TieredStopAtLevel=1
-XX:MaxInlineLevel=3
-XX:Tier4MinInvocationThreshold=100000
-XX:Tier4InvocationThreshold=110000
-XX:Tier4CompileThreshold=120000

-Dfile.encoding=UTF-8
-Djanf.debug=1
-Dsun.io.useCanonPrefixCache=false
-XX:+UseCompressedOops
-Dide.no.platform.update=true
-Dtoolbox.notification.token=3Bt-B6ncXlElf7r7_Ku8xgMp68REL_cT6zHjx-0HvLc=
-Dtoolbox.notification.portFile=/Users/qianxuechao/Library/Application Support/JetBrains/Toolbox/apps/IDEA-U/ch-0/222.4167.29/IntelliJ IDEA.app.vmoptions.port
-Didea.plugins.path=/Users/qianxuechao/Library/Application Support/JetBrains/Toolbox/apps/IDEA-U/ch-0/222.4167.29/IntelliJ IDEA.app.plugins
-javaagent:/Users/qianxuechao/Extend/Tools/ja-netfilter/ja-netfilter.jar
--add-opens=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED
--add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED
  1. 可以定注意,我的这个参数,不一定适合你的配置。电脑不一样,jdk版本不一样,设置应该也不一样。
  2. 我这个是一点一点根据网上的材料,一个个挨个试验过来的。首先启动速度都不一样,同样的任务,IDEA就不卡了。
  3. 这样,极大程度上,排除了一些会导致cpu狂飚的可能性。
  4. 根据网上一些材料,调整显示器的个性化设置,关闭调度中心里边【显示器具有单独的空间】项目。虽然没有什么大的改观,但是心理作用还是有一些的。
  5. 搜到的项目,能改的基本都改了。IDEA参数调整之前就改了,没有明显的改观。
  6. 突然发现一个问题,因为显示器比较大,27寸,又是4K显示器,所以分辨率设置的比较高。这样写代码比较爽。
  7. 可是他会不会影响cpu消耗呢?gpu消耗也是要发热的呀。
  8. 所以把显示器的分辨率调低,4k显示器当成2k用,稍微比内置视网膜屏高一点点。居然大有改观,很少再出现卡死的情况了。
  9. 总结:
  10. 肯定是操作系统的锅了。因为我显示器用了好几年。分辨率从买来的那一天开始就是设置成4k了。
  11. 充电也不是一天两天的事儿,接口都没变过。
  12. 这个kernel_task是内置程序,搜索资料显示是为了降低cpu消耗用的。其实这不是扯淡么,哎。算了。不喷它,以后还得用,等着系统再升级吧,这回可得等着升级程序了,一旦有升级,立即得升。
  13. 除了cpu的消耗,GPU的性能保护可能也是kernel_task的主要任务,mac上没有什么游戏,要不然跑上一两个巨型游戏,就可以测试出来是不是GPU的锅。
  14. 纪念一下疑难问题的处理过程。怀念乔布斯。
0

评论区