记一次IDEA的优化

首先放一下博主的电脑性能,博主的电脑性能不能说勉强够用,简直是能打能抗,但跑一个小小的idea竟然经常会出现卡顿!我不能忍,于是就想着着手研究一下idea的优化,就有了这篇博客
在这里插入图片描述


不认真的搜索

随便搜索了一下,大概说的就是 调大堆内存啊,之类的。然后我就随便把 最大堆和最小堆变成了 4g。

-Xms4g
-Xmx4g

好吧,看到这里如果你对JVM有一些了解你就会知道,堆越大单次GC时间越长。随意我这个"优化"其实是反作用,优化了个寂寞。于是我打开了arthas准备好好看看。

首先是IDEA和用户JVM参数

-Xms4g
-Xmx4g
-XX:ReservedCodeCacheSize=256m
-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

稍微动了点脑子

似乎也看不出什么 都是蛮正常的一个操作。
接下来是arthas的面板
在这里插入图片描述

一共6次老年代GC 竟然就用了24秒 CMS平均耗时4秒? 这是CMS吗还? 说好的优先减少停顿时间呢?我理解为我的堆太大了,然后我又设置了一个参数

-XX:CMSInitiatingOccupancyFraction=95

意味着当老年代占用95%以上时 才会触发FullGc (因为我的堆比较大,我觉得很少会真正的触发一次)

结果是 仍然没解决

IDEA有没有官方推荐的策略呢?


在这里插入图片描述

于是就搜到了上面这个结果。。 推荐JDK是11。
然后我又用JDK11 跑了一会IDEA,又打开了 arthas
在这里插入图片描述
似乎没什么问题? 成功了??
然而跑了一会,发现:

好吧真的没什么变化

在我盯着这个结果图陷入沉思的时候。 突然想到 jdk11默认的gc不是g1吗??? 为什么我换了JDK 仍然是CMS + Parallel new 的组合?
让我看到了罪魁祸首

-XX:+UseConcMarkSweepGC

好吧 果断注释掉,使用 G1当垃圾收集器

在这里插入图片描述
搭配上一个200ms的期待停顿时间

跑了一段时间,美滋滋。

可以舒服的写代码了。。。。


总结

  • 尽量使用JDK11环境跑IDEA
  • IDEA默认JVM参数使用CMS作为垃圾回收器! 是大坑
  • G1GC 可以设置期望的STW时间,我们作为IDEA的用户,期待的是低延迟。 可以凭自己感觉优化期望时间
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值