Android OS提升编译速度
2019年7月3日make不需要加参数-j,CPU已经到达100%。
编译时,我remmina远程连接到另一台电脑工作,remmina CPU占用约1%,我认为其影响可以忽略。
测试流程
- 删除out目录,删除ccache目录。
- 运行make,计算编译时间
- 计算启动操作系统到桌面的时间。对于模拟机,运行
emulator
命令。对于真机,运行time build/make/flash.sh
。 - 检出ART项目的master分支
- 运行make,计算编译时间
- 检出ART项目的debug分支
- 运行make,计算编译时间
- 计算启动操作系统到桌面的时间。对于模拟机,运行
emulator
命令。对于真机,运行time build/make/flash.sh
。
aosp_x86-eng x86 32位系统 |
aosp_x86_64-eng x86 64位系统 |
真机 arm64-aosp_angler-userdebug | ||
---|---|---|---|---|
第一次编译 | 总编译文件数 | 69256 | 89459 | 89626 |
编译用时 | 40:54 | 1:22:08 | 1:01:52 | |
启动操作系统 | 56秒 | 30/44/43 | 1m54.160s | |
$ prebuilts/misc/linux-x86/ccache/ccache -s |
cache directory /tmp/ccache cache hit (direct) 616 cache hit (preprocessed) 45 cache miss 20280 called for link 312 unsupported source language 354 files in cache 61079 cache size 10.8 Gbytes max cache size 100.0 Gbytes |
cache directory /tmp/ccache cache hit (direct) 622 cache hit (preprocessed) 45 cache miss 24320 called for link 327 unsupported source language 402 files in cache 71850 cache size 19.3 Gbytes max cache size 100.0 Gbytes |
cache directory /tmp/ccache cache hit (direct) 0 cache hit (preprocessed) 0 cache miss 30891 called for link 427 unsupported source language 813 files in cache 92803 cache size 17.1 Gbytes max cache size 100.0 Gbytes |
|
第二次编译 | 总编译文件数 | 4316 | 5259 | 5289 |
编译用时 | 18:54 | 23:32 | 24:06 | |
第三次编译 | 总编译文件数 | 2144 | 2801 | 2837 |
编译用时 | 11:20 | 14:38 | 14:55 | |
启动操作系统 | 无法开机 | 无法开机 | 1m54.621s | |
$ prebuilts/misc/linux-x86/ccache/ccache -s |
cache directory /tmp/ccache cache hit (direct) 0 cache hit (preprocessed) 0 cache miss 30562 called for link 432 unsupported source language 676 files in cache 91897 cache size 17.1 Gbytes max cache size 100.0 Gbytes |
cache directory /tmp/ccache cache hit (direct) 8 cache hit (preprocessed) 0 cache miss 35882 called for link 453 unsupported source language 740 files in cache 106082 cache size 28.7 Gbytes max cache size 100.0 Gbytes |
cache directory /tmp/ccache cache hit (direct) 12 cache hit (preprocessed) 0 cache miss 36261 called for link 448 unsupported source language 881 files in cache 107110 cache size 28.9 Gbytes max cache size 100.0 Gbytes |
总结,aosp_x86-eng编译速度最快,编译所需文件最少。真机编译启动操作系统最慢,因为需要时间把镜像文件刷入真机。第二三次主要修改的是ART项目,对其进行增量编译,真机编译最慢。所以,如果经常修改ART项目,在没有编译目标要求的情况下,应针对aosp_x86-eng编译。
我原来针对真机编译,改为针对x86 32编译,若设全编译、ART小修改编译、启动操作系统次数比例为1:9:7,则编译测试效率可提升27%。
请问您用的机器什么配置?
请问您用的什么配置?
32G内存,SSD,8个CPU