现在,对于非常简单的更改,我们的构建时间为 2 分 30 秒。这(与 ANT 相比)速度慢得惊人,并且正在降低整个团队的生产力。
我正在使用 Android Studio 并使用“使用本地 gradle 发行版”。
我尝试为 gradle 提供更多内存:
org.gradle.jvmargs=-Xmx6096m -XX:MaxPermSize=2048m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
内存多了很多。而且它仍然时不时地出现内存错误。
线程“pool-1-thread-1”中出现异常 java.lang.OutOfMemoryError:超出 GC 开销限制
惊人的。我正在使用并行选项和守护进程:
org.gradle.parallel=true
org.gradle.daemon=true
这并没有什么帮助。
我已将上述参数放入 ~/.gradle/gradle.properties 中(我什至怀疑 Android studio 是否忽略了这一点,所以我进行了测试 - 它并没有忽略它)。
仍然从终端得到 1:30 的构建时间,而在 Android Studio 中得到 2:30,所以不确定那里出了什么问题。与 Ant 相比,1:30 仍然很疯狂。如果您知道 Android Studio 在做什么(或忽略或重写为 gradle 配置),我将很高兴知道。
所以仅仅 CMD + B(简单编译)在更改后速度非常快,比如 7 秒。
但是当运行应用程序时,它会启动任务 dexXxxDebug,这简直要了我们的命。
我试过把
dexOptions {
preDexLibraries = false
}
没有帮助。
我知道 gradle 可能还没有为生产环境做好准备,但我开始后悔我们这么早就转向它的决定。
我们有很多模块,这可能是问题的一部分,但这不是 Ant 的问题。
任何帮助表示赞赏,
担
有关执行时间的更多信息:
描述 持续时间
Total Build Time 1m36.57s
Startup 0.544s
Settings and BuildSrc 0.026s
Loading Projects 0.027s
Configuring Projects 0.889s
Task Execution 1m36.70s
时间食客:
:app:dex调试 1分16秒46秒
我不太清楚为什么 Android Studio 比命令行慢,但您可以通过打开增量 deshing 来加快构建速度。在模块的构建文件中,将此选项添加到android
block:
dexOptions {
incremental true
}
In that dexOptions
block你还可以指定dex进程的堆大小,例如:
dexOptions {
incremental true
javaMaxHeapSize "4g"
}
这些选项取自 adt-dev 邮件列表上的一个线程(https://groups.google.com/forum/#!topic/adt-dev/r4p-sBLl7DQ https://groups.google.com/forum/#!topic/adt-dev/r4p-sBLl7DQ)有更多的上下文。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)