Android Studio缓慢增量构建
作者:互联网
我已经完成了许多步骤来改进我们的构建系统(those及更多).后来,我读到了这篇official blogpost,声称在Gradle 3.4中使用增量构建,构建时间提高了5-10倍.实际上,我们的增量构建不起作用,因为我们使用了注释处理器.由于Gradle 4.7 annotationProcessors可以使opt-in与增量构建兼容.我已经通过许多依赖项更新来激活annotationProcessors that support it的增量构建.
通过各种配置和改进,我能够将构建时间(预构建)从大约30秒减少到大约19秒.基于incremental build blogpost,我假设我可以将构建时间进一步缩短到~5s.
不幸的是,随着增量构建,它只下降到〜15s.使用–profile和–info我试图进一步诊断问题.只有exderract gradle任务compileDevDebugJavaWithJavac才显示编译步骤从~16s到~12s.
Incremental compilation of 476 classes completed in 12.51 secs.
在我看来,这对于单行更改来说太慢了,并且它几乎没有反映Gradle对增量构建的要求.我特意尝试更改具有少量依赖项的文件,我知道公共常量会触发完全重建.还有什么可以导致只有一个文件的增量构建变得那么慢?
我还尝试启用实验功能
android.enableSeparateAnnotationProcessing=true
哪个工作并将我的构建分成两个编译步骤
compileDevDebugJavaWithJavac 6.777s
processDevDebugAnnotationsWithJavac 6.104s
我希望与之相伴
org.gradle.parallel=true
这两个任务可能并行运行,几乎是构建时间的一半.但显然并行处理在这里不起作用,或者它呢?
还有什么办法可以增加非常小的变化的构建时间?
编辑:我发现主要的问题是我们有太多的类依赖,它总是触发476个类的编译(参见this问题).因为我不期望在我们的遗留代码中解决足够的类依赖性:我的问题仍然存在.项目是否可以启用SeparateAnnotationProcessing并行化或是否有任何其他配置?
解决方法:
您可以通过优化来加速开发构建,而不是担心增量方面.你在用proguard吗?如果是这样,请为开发/暂存构建禁用它,并仅将其用于发布版本.
如果你已经这样做了 – 我不确定在没有提出机器规格的情况下提出什么建议.
标签:android,gradle,android-gradle,android-studio-3-0,incremental-build 来源: https://codeday.me/bug/20190705/1387159.html