有时候会发现idea用起来特别卡,你会发现不是整个电脑卡,而是idea用起来卡。这时候就需要对idea做一下性能优化了。
首先我们把idea的内存调出来:可以右击idea底部然后点这个Memory Indicator,然后就能看到idea使用的内存了。
为什么需要做idea的性能优化?
并不是机器的性能越好,idea就越快。
我的台式上的idea内存设置的有8G(默认配置给的),但性能依旧很差,内存并不是越大越好,因此需要做优化。
(有一次我弄了一个超长字符串,然后在下面打字,要好几秒才能反应过来,所以我才意识到这个问题)
操作步骤:
idea上方的help -> Edit Custom VM Options
打开后保留原有的东西,然后将下面的内容粘贴进去即可
-Xms1024m
-Xmx2048m
-XX:ReservedCodeCacheSize=256m
-XX:+UseConcMarkSweepGC
-XX:SoftRefLRUPolicyMSPerMB=50
-XX:CICompilerCount=2
-XX:+HeapDumpOnOutOfMemoryError
-XX:-OmitStackTraceInFastThrow
-ea
-Dsun.io.useCanonCaches=false
-Djdk.http.auth.tunneling.disabledSchemes=""
-Djdk.attach.allowAttachSelf=true
-Djdk.module.illegalAccess.silent=true
-Dkotlinx.coroutines.debug=off
每个配置项的含义:
-Xms1024m:指定JVM堆的初始内存大小为1024MB。
-Xmx2048m:指定JVM堆的最大内存大小为2048MB。
-XX:ReservedCodeCacheSize=256m:指定代码缓存区的最大内存为256MB。
-XX:+UseConcMarkSweepGC:启用并发标记-清除(Concurrent Mark-Sweep)垃圾收集器。
-XX:SoftRefLRUPolicyMSPerMB=50:设置软引用对象的过期时间以及其与总堆内存大小的比值。
-XX:CICompilerCount=2:设置用于即时编译的编译线程数为2。
-XX:+HeapDumpOnOutOfMemoryError:在发生内存溢出错误时自动生成堆转储文件。
-XX:-OmitStackTraceInFastThrow:禁用快速异常抛出时的堆栈跟踪信息省略。
-ea:启用断言检查。
-Dsun.io.useCanonCaches=false:设置用于文件路径规范化的缓存使用为false。
-Djdk.http.auth.tunneling.disabledSchemes=“”:设置禁用的HTTP隧道身份验证方案为空字符串。
-Djdk.attach.allowAttachSelf=true:允许进程自己附加到虚拟机。
-Djdk.module.illegalAccess.silent=true:启用对非法访问模块的静默处理。
-Dkotlinx.coroutines.debug=off:设置Kotlin协程的调试模式为关闭。