加快Android(AOSP)的构建时间

时间:2014-09-11 14:54:09

标签: performance makefile android-source

我在配备16Gb RAM和SSD的Intel i7笔记本电脑上。除了指定-j参数和启用CCACHE之外,还有其他技巧可以用来加速AOSP的编译时间吗?目前它在2小时左右。

我发现-j12在我的CPU下具有最佳性能。

2 个答案:

答案 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代码需要花费的时间不多。