开发一个大型的Gradle 项目,每次编译编译缓慢,提示堆空间耗尽,经常编了几分钟还是失败
还有就是一个类里面代码过多的时候会卡住,经常受此困扰。
解决方案:
首先解决IDEA卡顿的问题,可以通过设置扩大IDEA的使用内存。
在IDEA安装目录的bin目录下,有idea.exe.vmoptions, idea64.exe.vmoptions两个文件,
根据操作系统选择修改,设置-Xms最小内存,-Xmx最大内存,根据需要都扩大一些就可以了。
这里是我的idea设置,我设置最大内存为2g,4g感觉都还可以。
-Xms512m
-Xmx4096m
-XX:ReservedCodeCacheSize=512m
-XX:+UseG1GC
-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
第二步,设置gradle的编译内存,不然编译还是那么慢。
在项目根目录下新建 gradle.properties
根据需要写入内存设置,开启并行编译,这样编译就不会失败了。
org.gradle.parallel=true
org.gradle.daemon=true
org.gradle.configureondemand=true
org.gradle.jvmargs=-Xmx4096m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8