现在我们的情况是,即使进行非常简单的更改,构建时间也要2分30秒。与ANT相比,这个速度非常慢,正在影响整个团队的生产力。
我正在使用Android Studio并且使用“使用本地gradle分发”选项。
我尝试为gradle提供更多的内存:
org.gradle.jvmargs=-Xmx6096m -XX:MaxPermSize=2048m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
提供了大量的内存,但有时仍然会出现内存错误:
Exception in thread "pool-1-thread-1" java.lang.OutOfMemoryError: GC overhead limit exceeded
真是惊人。我正在使用并行选项和守护进程:
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中这不是问题。
非常感谢任何帮助,Dan
关于执行时间的更多信息:
描述 时长
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:dexDebug 1m16.46s