加快Android(AOSP)的构建速度

问题描述 投票:4回答:3

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

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

performance makefile android-source
3个回答
7
投票

我有两个建议:

1。)将/ tmp设置为虚拟磁盘

这里是将/ tmp目录设置为Ubuntu中的虚拟磁盘的好链接

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 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

暂时使用以下命令将swappiness的值更改为10,并将在下次重启时将其还原。

sudo sysctl vm.swappiness=10

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

vm.swappiness=10 

如其他文章所述,make -j和CCache也是非常重要和有用的。有一个名为schedtool的程序可以调度CPU进程。他们声称它适用于长时间运行的非交互式任务(即AOSP构建),但我尚未尝试过。

欢呼快乐的大厦


0
投票

AOSP构建对我来说也需要2个小时左右,但仅是第一时间。后续构建需要10分钟至1小时,具体取决于要修改的模块(java侧或cpp核心模块)。如果您不修改cpp代码,则编译器将使用缓存的已编译代码,而编译java代码则不会花费太多时间。


0
投票

好帖子!我将尝试上面列出的schedtool来查看是否有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.