前言
android studio编译慢一直就是一个问题,很久以前使用eclipse,编译速度很快,在还没开始正式工作的时候就开始使用android studio,那时候还是0.8 很原始,主要那时候还没开始工作,所以编译快慢没感觉,但是在工作以后,明显感觉很慢,项目编译4分钟,到现在为止,最离谱的是将近9分钟,所以一直在留意怎么加快编译速度。
结论
哈哈哈,主要这个还是一步到位吧,过程下面再补充吧,很急。
前提:项目是android 嵌入了flutter,以及部分静态网页。
- 家里 9700k + 32G + ssd(sata协议),编译正式包需要8分钟以上。
- 公司电脑8700 + 32G + ssd(nvme协议),编译正式包需要8分钟以上。
- 公司换电脑了,mac studio M1 MAX + 32G起步,编译正式包不到3分钟。增量编译十几秒,影响我划水了,好快。
- 家里电脑换了ssd,9700k + 32G + ssd(nvme协议,读速度到了6000MB/s),编译用到的全部放到新的硬盘中,编译正式包不到3分钟,增量编译不到20s。
- 其他的方式,可能需要修改gradle plugin,也会有效果,项目不一样,可以看看鸿洋转载的-2022年编译加速的8个实用技巧。
换电脑是最有效的方式,
或者只换一个好ssd 读速度在6000MB/s以上。换完ssd你会发现CPU瓶颈了
相同硬件配置,macOS更快。
在读书的时候,一台电脑装了windows8.1,同时安装了黑苹果,在同一个sata的 硬盘中。
相同一套代码,windows编译将近5分钟,macOS编译不到4分钟
过程
以前都是通过更改androidstudio的参数,也不是什么大项目,也没有多部门多module。
- 勾选settings >Build ,Execution>Deployment>Compiler 的Compile independent modules in parallel选项,实现gradle多线程编译。感觉不是很明显。
- 修改android studio启动的jvm参数。
-XX:CICompilerCount=2,一般默认安装都是2,可以设置大点编译会快,但是cpu会占满,做其他事情电脑巨卡。编译速度有一点感觉。
- 配合最新版android studio(Build #AI-213.7172.25.2113.9123335, built on September 30, 2022),升级gradle 7.4,android gradle plugin版本7.1.0,这个会有感觉,增量编译会快一点。Android Gradle 插件版本说明
- 使用了Jenkins(docker环境下),编译慢,看到资源也没占满,可能是被限制了。
启动编译前,设置一下环境变量,也要注意一下当前换环境变量是不是有值,防止直接覆盖没了。
JAVA_TOOL_OPTIONS="-XX:-UseContainerSupport" // 不受docker容器限制cpu、内存
- transform 之类的,我们这边有用到框架的,自己家没有,所以也没做什么修改。
引用
- 闲谈JVM(四):浅谈CodeCache与JIT