Android Studio缓慢的增量构建

时间:2019-02-08 03:26:59

标签: android gradle android-gradle android-studio-3.0 incremental-build

我已经经历了许多步骤来完善我们的构建系统(those等)。后来,我读了这个official blogpost,声称Gradle 3.4中的增量构建将构建时间缩短了5-10倍。确实,我们的增量构建无法正常工作,因为我们使用了注解处理器。由于Gradle 4.7注解,处理器可以opt-in与增量构建兼容。我经历了许多依赖更新,以使用annotationProcessors that support it激活增量构建。

通过各种配置和改进,我能够将构建时间(预构建)从大约30秒减少到大约19秒。基于incremental build blogpost,我以为我可以将构建时间进一步减少到〜5s。

不幸的是,随着增量构建,它仅下降到约15秒。我尝试使用--profile--info进一步诊断问题。仅吸引了gradle任务compileDevDebugJavaWithJavac,它表明编译步骤从〜16s变为〜12s。

  

在12.5类时间内完成476个类的增量编译。

在我看来,这对于单行更改来说太慢了,并且它几乎不能反映Gradle对于增量构建的要求。我专门尝试更改具有很少依赖性的文件,而且我知道公共常量会触发完全重建。还有什么会导致仅单个文件的增量构建速度如此之慢?

我还尝试启用实验功能

android.enableSeparateAnnotationProcessing=true

可以正常工作,并将我的构建分为两个编译步骤

  

compileDevDebugJavaWithJavac 6.777s

     

processDevDebugAnnotationsWithJavac 6.104s

我希望能与

一起
org.gradle.parallel=true

这两个任务可能并行运行,并且构建时间将近一半。但是显然并行处理在这里行不通吗?

还能做些什么来增加非常小的更改的构建时间?

编辑:我发现主要的问题是我们有太多的类依赖关系,并且总是触发476个类的编译(请参阅this问题)。由于我不希望在我们的旧版代码中解决足够的类依赖关系:我的问题仍然存在。是否可以enableSeparateAnnotationProcessing并行化项目,或者是否有任何其他配置?

1 个答案:

答案 0 :(得分:1)

也许不必担心增量方面的问题,而可以进行优化以加快开发速度。您在使用proguard吗?如果是这样,请在您的开发/暂存版本中禁用它,而仅将其用于发行版本。

如果您已经在做-不知道建议什么以提高机器规格。