极致优化 IDEA 启动速度(本文内容过于硬核)( 二 )


概览情况:
极致优化 IDEA 启动速度(本文内容过于硬核)文章插图
可以看到 , Class Loader 时长瞬间就下来了 , 从 3m 变成了 24s, 并且 Minor GC 的时长整整缩短了一半 , 从 712ms 下降到了 342ms, 次数也由之前的 147 次下降到了现在的 9 次 , 依然没有 Full GC 产生(废话 , 内存开了这么大又填不满) 。
并且看概览图的时候可以看到 , 堆内存扩容只扩容了一次 。
那么还能不能再短点呢?看下整个图 , 感觉 ClassLoader 还有空间嘛 , 我们还可以把加载时的验证给关掉 , 使用 -Xverify:none, 这样应该还能再降低一些加载的耗时 。
修改后的配置如下:
-Xms1g-Xmx2g-XX:ReservedCodeCacheSize=240m-XX:+UseConcMarkSweepGC-XX:SoftRefLRUPolicyMSPerMB=50-Xverify:noneGC 情况:
极致优化 IDEA 启动速度(本文内容过于硬核)文章插图
概览情况:
极致优化 IDEA 启动速度(本文内容过于硬核)文章插图
果然 , 加载时长从之前的 24s 继续下降到了 19s, 差不多减少了有 1/4 左右 , 还是卓有成效的 。
接着我想如果直接把最小堆也设置成 2G, 那么堆大小就无需扩容 , 会不会有更加正向的影响?
修改后的配置如下:
-Xms2g-Xmx2g-XX:ReservedCodeCacheSize=240m-XX:+UseConcMarkSweepGC-XX:SoftRefLRUPolicyMSPerMB=50-Xverify:noneGC 情况:
极致优化 IDEA 启动速度(本文内容过于硬核)文章插图
概览情况:
极致优化 IDEA 启动速度(本文内容过于硬核)文章插图
实际上并没有什么太大成效 。
从概览中可以看到 , 我当前版本的 IDEA 使用的是自带的 JDK11 :
极致优化 IDEA 启动速度(本文内容过于硬核)文章插图
JDK11 中是有 G1 收集器的 , 我要么开启 G1 试一下:
-Xms1g-Xmx2g-XX:ReservedCodeCacheSize=240m-XX:+UseG1GC-XX:SoftRefLRUPolicyMSPerMB=50-Xverify:noneGC 情况:
极致优化 IDEA 启动速度(本文内容过于硬核)文章插图
概览情况:
极致优化 IDEA 启动速度(本文内容过于硬核)文章插图
看起来好像 Minor GC 的耗时还略有上涨 , 并且 GC 的次数从 9 次变成了 19 次 。
不过看到概览图发现了一个更神奇的事情 , 当使用 G1 的时候 , 整个使用堆大小竟然没有突破 1G, 看来电脑内存不够大的同学更加推荐使用 G1 回收器 , 虽然 GC 的耗时稍有增加 , 不过能减少内存的使用 , 而 G1 的 GC 机制又是大量并行的 , 这点根本无伤大雅 。
最后我放一下我修改后的整体的配置:
-Xms1g-Xmx2g-XX:ReservedCodeCacheSize=240m-XX:+UseG1GC-XX:SoftRefLRUPolicyMSPerMB=50-Xverify:none-ea-XX:CICompilerCount=2-Dsun.io.useCanonPrefixCache=false-Djdk.http.auth.tunneling.disabledSchemes=""-XX:+HeapDumpOnOutOfMemoryError-XX:-OmitStackTraceInFastThrow-Dkotlinx.coroutines.debug=off-Djdk.module.illegalAccess.silent=true-Dide.no.platform.update=true-Djdk.attach.allowAttachSelf=true-Didea.plugins.path=D:\\Program Files\\JetBrains\\apps\\IDEA-U\\ch-0\\202.7660.26.plugins【极致优化 IDEA 启动速度(本文内容过于硬核)】


推荐阅读