栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Go语言

mac 修改idea 占用内容

Go语言 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

mac 修改idea 占用内容

最近在工作中发现idea编辑.java文件时有卡顿显现,百度,谷歌后发现大多数都是指向,配置idea内存和关闭语法检查关闭没用的插件,各种调优配置,本人都试过,发现都无法解决卡顿问题,下面说一下我的解决思路

mac系统:

idea 版本:

1.使用mac活动监视器发现IDEA进程占用cpu超过400%

2.使用IDEA自带的性能监视器(Help-> Activity Monitor..)发现是compiler JIT 占用cpu

去网了解compiler JIT占用cpu的原因发现如下几点:

1.当codeCache耗尽时,如果codeCache占用内存没有被回收,就会导致编译线程无法继续,并且消耗大量cpu导致系统运行变慢(影响版本在jdk8和jdk7中,不过我用的jdk11不知道存不存在)

考虑这个问题首先就是增加codeCache和codeCache的回收

Help -> Edit Custom VM Options...

-XX:ReservedCodeCacheSize=1024m //增加codeCache容量

-XX:+UseCodeCacheFlushing //codeCache回收

重启idea发现cpu依旧占用严重,那就说明JVM在启动初期解释字节码进行执行,当方法执行次数达到指定阈值后,触发JIT把字节码编译成机器码,这个过程消耗CPU资源比较严重,我直接把所有代码编译成机器码,

Help -> Edit Custom VM Options...

-Xcomp   //可以使jvm运行在纯编译模式下,所有方法在第一次被调用的时候就会被编译成机器代码

这样设置有一个弊端,第一次启动特别慢,之后就特别流畅,作为开发一般我们都不会关闭IDEA,这样这个方法都是可行的.

重启(2分钟左右)  再次编写发现cpu占用没有再400% ,保持在80%左右,至此解决idea卡顿问题,下面是我的配置

-Xms1024m

-Xmx1024m

-Xmn350m

-XX:ReservedCodeCacheSize=1024m

-XX:+UseConcMarkSweepGC

-Dfile.encoding=UTF-8

-XX:SoftRefLRUPolicyMSPerMB=50

-ea

-Dsun.io.useCanonCaches=false

-Djava.net.preferIPv4Stack=true

-Djdk.http.auth.tunneling.disabledSchemes=""

-XX:+HeapDumpOnOutOfMemoryError

-XX:-OmitStackTraceInFastThrow

-Xverify:none

-verbose:gc

-XX:+PrintGCDetails

-XX:+PrintGCDateStamps

-XX:MetaspaceSize=1024m

-XX:+UseCodeCacheFlushing

-Xcomp

如果按照这样的配置idea无法启动按照如下修改

方法一

-XX:CompileThreshold=10 //在client下默认1500 在server下10000

-XX:-UseCounterDecay //关闭热度衰减

-XX:CompileThreshold 这个是方法调用计数器 -XX:CompileThreshold=10 表示方法在被执行10次后编译成机器码,

还需要-XX:-UseCounterDecay 关闭热度衰减,并且去掉

-Xcomp

方法二

-XX:OnStackReplacePercentage=34 // 在client下默认是933 server默认是140

-XX:OnStackReplacePercentage 这是方法回边计数器,当方法执行次数达到公式值后,就会触发编译成机器码

在 client 模式下设置为1

在 server 模式下设置为 34

去掉 -Xcomp 配置

Client模式下回边计数器阈值计算公式:

方法调用计数器阈值(-XX:CompileThreshold)× OSR比率(-XX:OnStackReplacePercentage)/ 100

-XX:OnStackReplacePercentage默认值为933

若都取默认值,计算结果(默认阈值)为13995

Server模式下回边计数器阈值计算公式:

方法调用计数器阈值(-XX:CompileThreshold)×(OSR比率(-XX:OnStackReplacePercentage)- 解释器监控比率(-XX:InterpreterProfilePercentage)/ 100

-XX:OnStackReplacePercentage默认值为140

-XX:InterpreterProfilePercentage默认值为33

若都取默认值,计算结果(默认阈值)为10700

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/910464.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号