我正在使用配备16Gb RAM和SSD的Intel i7笔记本电脑。除了指定-j参数并启用CCACHE之外,还有其他技巧可用来加快AOSP的编译时间吗?目前大约是2小时。
我发现-j12在我的CPU上具有最佳性能。
我有两个建议:
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构建),但我尚未尝试过。
欢呼快乐的大厦
AOSP构建对我来说也需要2个小时左右,但仅是第一时间。后续构建需要10分钟至1小时,具体取决于要修改的模块(java
侧或cpp
核心模块)。如果您不修改cpp
代码,则编译器将使用缓存的已编译代码,而编译java
代码则不会花费太多时间。
好帖子!我将尝试上面列出的schedtool来查看是否有帮助。