idea 卡顿
idea 经常出现卡顿,尤其是项目代码量大,使用代码提示时,那卡顿感觉尤其明显。idea 本身就是java 开发工具,出现卡顿也属于正常。对于idea这级别的软件,卡顿的一般原因就是内存太低使用满了,java 频繁进行Full GC 。下面从两个方面进行优化
jconsole 监控 full gc 频率 调整内存设置。 关闭代码实时监测。
jconsole 监控 full gc 频率
JConsole 是一个内置 Java 性能分析器,可以从命令行(直接输入jconsole)或在 GUI shell (jdk\bin下打开)中运行。
它用于对JVM中内存,线程和类等的监控。可使用JTop插件。它可以监控本地的jvm,也可以监控远程的jvm,也可以同时监控几个jvm。
这款工具的好处在于,占用系统资源少,而且结合Jstat,可以有效监控到java内存的变动情况,以及引起变动的原因。在项目追踪内存泄露问题时,很实用。
监控内存进行GC的频率
调整内存设置。
打开 IDEA 安装目录,看到有一个 bin 目录,其中有两个 vmoptions 文件,需针对不同的JDK进行配置,不过切记最好不要超过内存的1/3:
32 位:idea.exe.vmoptions64 位:idea64.exe.vmoptions
-Xms128m
-Xmx750m
-XX:ReservedCodeCacheSize=240m
-XX:+UseConcMarkSweepGC
-XX:SoftRefLRUPolicyMSPerMB=50
-ea
-XX:CICompilerCount=2
-Dsun.io.useCanonPrefixCache=false
-Djava.net.preferIPv4Stack=true
-Djdk.http.auth.tunneling.disabledSchemes=""
-XX:+HeapDumpOnOutOfMemoryError
-XX:-OmitStackTraceInFastThrow
-Djdk.attach.allowAttachSelf=true
-Dkotlinx.coroutines.debug=off
-Djdk.module.illegalAccess.silent=true
这种方式效果很明显,调整 初始化内存,可以有效的降低Full Gc频率。
设置JVM内存的参数有四个:
-Xms Java Heap初始值,Server端JVM最好将-Xms和-Xmx设为相同值,开发测试机JVM可以保留默认值;
用它来设置程序初始化的时候内存栈的大小,增加这个值的话你的程序的启动性能会得到提高。不过同样有前面的限制,以及受到xmx的限制。
-Xmx Java Heap最大值,默认值为物理内存的1/3,最佳设值应该视物理内存大小及计算机内其他内存开销而定;
用来设置你的应用程序能够使用的最大内存。
-Xmn Java Heap Young区大小,不熟悉最好保留默认值;
-Xss 每个线程的Stack大小,不熟悉最好保留默认值;
-XX:PermSize 永久区的大小。-XX:+UseParNewGC 使用并行收集算法。
关闭掉阿里代码实时监测
建议关闭实时检测,调整为每次提交代码时进行一次扫描。降低工具的内存占比。
举报/反馈

极客架构

6137获赞 558粉丝
科技技术普及。涉及互联网科技
科技领域爱好者
关注
0
0
收藏
分享