开发一个大型的Gradle 项目,每次编译编译缓慢,提示堆空间耗尽,经常编了几分钟还是失败
    还有就是一个类里面代码过多的时候会卡住,经常受此困扰。
    解决方案:
    首先解决IDEA卡顿的问题,可以通过设置扩大IDEA的使用内存。
    在IDEA安装目录的bin目录下,有idea.exe.vmoptions, idea64.exe.vmoptions两个文件,
    根据操作系统选择修改,设置-Xms最小内存,-Xmx最大内存,根据需要都扩大一些就可以了。
    这里是我的idea设置,我设置最大内存为2g,4g感觉都还可以。

    1. -Xms512m
    2. -Xmx4096m
    3. -XX:ReservedCodeCacheSize=512m
    4. -XX:+UseG1GC
    5. -XX:SoftRefLRUPolicyMSPerMB=50
    6. -XX:CICompilerCount=2
    7. -XX:+HeapDumpOnOutOfMemoryError
    8. -XX:-OmitStackTraceInFastThrow
    9. -ea
    10. -Dsun.io.useCanonCaches=false
    11. -Djdk.http.auth.tunneling.disabledSchemes=""
    12. -Djdk.attach.allowAttachSelf=true
    13. -Djdk.module.illegalAccess.silent=true
    14. -Dkotlinx.coroutines.debug=off

    第二步,设置gradle的编译内存,不然编译还是那么慢。
    在项目根目录下新建 gradle.properties
    image.png
    根据需要写入内存设置,开启并行编译,这样编译就不会失败了。

    1. org.gradle.parallel=true
    2. org.gradle.daemon=true
    3. org.gradle.configureondemand=true
    4. org.gradle.jvmargs=-Xmx4096m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8