我在配备16Gb RAM和SSD的Intel i7笔记本电脑上。除了指定-j参数和启用CCACHE之外,还有其他技巧可以用来加速AOSP的编译时间吗?目前它在2小时左右。
我发现-j12在我的CPU下具有最佳性能。
答案 0 :(得分:5)
我有两个建议:
1。)将/ tmp设置为ramdisk
这是一个很好的链接,关于在Ubuntu中将/ tmp目录设置为ramdisk
http://cpiekarski.com/2013/01/02/speeding-up-aosp-builds/
为系统临时目录(/ tmp)ramdisk牺牲几MB的RAM(~60 MB)可以减少~2%-10%的编译时间,具体取决于总系统吞吐量(其他硬件规格)。
要执行此操作,您只需将以下内容添加到/ etc / fstab文件中:
ramdisk /tmp tmpfs mode=1777,size=2g
大小等于你想要使用的ram数量。在这种情况下2千兆字节
2。)交换使用
再一次链接: http://ubuntuguide.net/optimize-the-usage-of-swap-to-speed-up-response-for-ubuntu
有一个swappiness参数控制内核将进程从物理内存移到交换磁盘上的趋势。它的范围从0到100,当swappiness = 0时,它告诉内核尽可能避免将进程交换出物理内存,当swappiness = 100时,它告诉内核积极地将进程交换出物理内存并将它们移动到交换缓存。
要检查交换因子,请打开终端并输入:
cat /proc/sys/vm/swappiness
使用以下命令暂时将swappiness'值更改为10,并在下次重新启动时恢复。
sudo sysctl vm.swappiness=10
要永久更改值,请在文本编辑器中打开/etc/sysctl.conf并更改vm.swappiness的值。如果此值不存在,请将其添加到末尾,例如:
vm.swappiness=10
正如其他帖子中所提到的,make -j和CCache也非常重要且有用。有一个名为schedtool的程序可以调度CPU进程。他们声称它适用于长期运行的非交互式任务(即AOSP构建),但我还没有尝试过。
干杯和快乐建筑
答案 1 :(得分:0)
AOSP构建对我来说也需要2个小时,但仅限于fisrt时间。下一个构建需要10分钟到1小时,取决于哪个模块被修改(java
侧或cpp
核心模块)。如果你不修改cpp
代码,那么编译器会采用缓存的编译代码,并且编译java
代码需要花费的时间不多。