加快Android(AOSP)的构建时间

Mar*_*rkP 4 performance makefile android-source

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

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

小智 6

我有两个建议:

1.)将/ tmp设置为ramdisk

这是一个关于将/ tmp目录设置为Ubuntu中的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 
Run Code Online (Sandbox Code Playgroud)

大小等于你想要使用的ram数量.在这种情况下2 GB

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
Run Code Online (Sandbox Code Playgroud)

使用以下命令暂时将swappiness'值更改为10,并在下次重新启动时恢复.

sudo sysctl vm.swappiness=10
Run Code Online (Sandbox Code Playgroud)

要永久更改该值,请在文本编辑器中打开/etc/sysctl.conf并更改vm.swappiness的值.如果此值不存在,请将其添加到末尾,例如:

vm.swappiness=10 
Run Code Online (Sandbox Code Playgroud)

正如其他帖子中所提到的,make -j和CCache也非常重要且有用.有一个名为schedtool的程序可以调度CPU进程.他们声称它适用于长期运行的非交互式任务(即AOSP构建),但我还没有尝试过.

干杯和快乐的建筑


Vea*_*rji 0

AOSP 构建对我来说也需要大约 2 小时,但只是第一次。接下来的构建需要 10 分钟到 1 小时,具体取决于修改哪个模块(java侧面或cpp核心模块)。如果不修改cpp代码,编译器会采用缓存的编译代码,并且编译java代码不会花费太多时间。