我经历了许多措施去完善我们的编译系统(those和更多)。后来,我读到这official blogpost是声称,建造时间提高5到10倍与增量构建在摇篮3.4。事实上,我们的增量编译没有工作,因为我们使用annotationProcessors。由于摇篮4.7 annotationProcessors可以opt-in增量构建是兼容的。我经历了许多依赖更新去激活增量构建与annotationProcessors that support it。
通过各种配置和改进我能够从30岁〜来〜19S减少我们的建设时间(预建)。基于该incremental build blogpost我是假设,我可以进一步降低建造时间到〜5秒。
不幸的是,增量构建它只来到了〜15秒。使用--profile
和--info
我试图进一步诊断问题。只有exctracting的gradle这个任务compileDevDebugJavaWithJavac
它表明编译步骤从〜16s至〜12S去了。
476班的渐进式编译在12.51秒完成。
在我看来,这是一个单行的变化太慢了,它不近地反映摇篮声称什么增量构建。我特别想改变与一些依赖文件,我知道,公共常量触发全面重建。还有什么可以引起增量构建了只有一个文件是慢?
我也试图使实验功能
android.enableSeparateAnnotationProcessing=true
它不工作,我的构建分裂成两个编译步骤
compileDevDebugJavaWithJavac 6.777s
processDevDebugAnnotationsWithJavac 6.104s
我希望,在结合
org.gradle.parallel=true
这两项任务可能会并行,几乎一半的建造时间运行。但很显然,并行处理不会在这里工作,或不是吗?
还有什么可以做,以增加非常小的变化生成时间?
编辑:我发现的主要问题是,我们有太多的类依赖性,它总是触发476类(参见this问题)的编制。因为我不希望在我们的遗留代码来解决够班的依赖关系:我的问题仍然有效。可以在项目可enableSeparateAnnotationProcessing
可以并行或有任何其他配置?
而不是担心增量方面,也许还有优化你可以加快发展的基础之上。你使用ProGuard?如果是这样,禁用它为您的开发/分期建立和发布版本只用它。
如果你已经做但─我不知道什么建议短期颠簸了机器规格的。