美文网首页
AndroidStudio Gradle 编译项目时间过长问题

AndroidStudio Gradle 编译项目时间过长问题

作者: 全能超人 | 来源:发表于2018-05-18 01:57 被阅读0次

    最近一个朋友新写了一个项目,随着项目的扩大,gradle的时间越来越长,有一次竟然跑了四十分钟,而且常常会出现!这让我很是惊讶,下面为QQ给我发的图片。

    运行50分钟2333

    之后没多想就告诉他把settings-gradle-offline work设置了对勾

    之后将app级别的build.gradle添加一下javaMaxHeapSize "4g"

    本以为可以帮他解决问题,结果告诉我还是慢,之后他告诉我有时候跑项目的时候会出现GC overhead limit exceeded 这个错误,但是是概率性的。

    因为小弟不才对gc不太了解,我就查了一下gc垃圾回收机制

    找到了一篇博客https://blog.csdn.net/jiafu1115/article/details/7024323感觉讲的很清晰,推荐看一下。

    之后了解查找此错误为JDK6新增的错误类型。

    原因:当GC为释放很小空间占用大量时间时会抛出此异常

    即(Sun 官方对此的定义:超过98%的时间用来做GC并且回收了不到2%的堆内存时会抛出此异常)。

    一般是因为堆太小,导致异常的原因:没有足够的内存。 

    解决方案:在gradle.properties里添加如下代码

    org.gradle.daemon=true

    org.gradle.jvmargs=-Xmx4096m -XX:MaxPermSize=4096m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8

    org.gradle.parallel=true

    org.gradle.configureondemand=true

    org.gradle.jvmargs=-Xmx4096m -XX:MaxPermSize=4096m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8

    上面这一句根据自己电脑配置自行设置

    其他三句为加快gradle的编译速度

    他告诉我编译速度最慢也就一分多钟了,至此问题已经解决!

    最后我向他推荐了Freeline ,它可以实现Android的秒级编译,蚂蚁金服旗下开发,谁用谁知道!

    开源地址:https://github.com/alibaba/freeline 

    原理:https://yq.aliyun.com/articles/59122?spm=5176.8091938.0.0.1Bw3mU

    下一篇准备记录一下freeline的安装以及基本用法,和自己曾经遇到的一些问题。

    从今往后每周会抽出一些时间,记录一下在安卓开发中遇到的一些问题和解决方案,好记性不如烂笔头,自己加油!

    相关文章

      网友评论

          本文标题:AndroidStudio Gradle 编译项目时间过长问题

          本文链接:https://www.haomeiwen.com/subject/zfrwdftx.html