2012年,我开始构建内核-并依靠我可靠的Core 2 Quad Q9550进行构建。如果这不值得冒犯,那么我在Windows内的VM中完成此操作的事实可能会确保对于大多数从源代码构建Android的人们来说都是如此。虚拟化的Ubuntu环境的性能不如本地环境,哦,当内核花了2多个小时来构建时,这种痛苦就变得显而易见了。当我想在第二年开始从源代码构建Android时,我知道我目前的硬件并不能解决问题-因此开始了漫长而又持续的旅程,以寻找减少这种不断增长的构建时间的方法。
从那以后的几年中,我很幸运地在多种外形和平台上进行了测试。这很重要,因为在Android中,构建配置并非千篇一律。应用程序开发人员可能不需要与游戏开发人员相同的配置。而且,构建内核的人可能不需要花那么多钱就可以在很短的时间内从源代码构建完整的Android ROM。操作系统选择又如何—现在可以(也不能)使用什么?我希望也能对此进行更多探索,尤其是在Windows和Canonical致力于将成熟的Bash引入Windows 10的情况下。
为了使本系列正式开始,我们必须找到从源头构建AOSP项目的最大潜在瓶颈。我们不经常去购物而不购买PC或进行升级而又不知道把钱放在哪里。因此,基于3年的研究和可量化的结果,我准备分享我的发现。现在是预期的免责声明:这些发现是基于个人经验,不可能考虑所有组合。那些拥有自己的构建配置的人,请听完后告诉我们,您的构建进展如何!时间还指的是启用并填充了ccache的内部版本–当尚未填充ccache时,通常是两倍。
m550-简介磁盘I / O:去年,我必须向Cyanogen的Tom Marshall(也是Kang团队的成员)致敬,以指出我的方向。老实说,当他告诉我这将成为CPU 的瓶颈时,我不相信他。但是在过去的6个月中,我已经能够通过可量化的数据进行备份。在高端CPU(例如大多数台式机Intel Core i7型号)中,这是系统将遇到的最大瓶颈。
我们来测试一下这4种构建配置。我将在此处突出显示CPU,
Build 1是我的“未升级” PC,是配备32GB DDR3-2400 RAM的Intel i7-4790K,用于主驱动器的Samsung 840 Evo 250GB和较旧的Micron P400E 100GB。
Build 2是Build 1的升级版。现在,它具有超频至4.0 GHz的Intel i7-5960X,32GB DDR4-3200 RAM,Samsung SM951 512GB AHCI m.2 SSD和之前的两个SSD。完整的构建规范在PCPartPicker上。
Build 3是最近的用户版本,具有Intel i7-5820K(超频至4.2 GHz),16GB DDR4-2400和2个Samsung 840 EVO 120GB RAID0(条纹)配置。
版本4,最近的服务器版本,具有正常速度的Intel Xeon E3-1270 v5、32 GB DDR4-2133,Samsung 950 Pro 512GB NVMe m.2以及RAID5阵列中的4个SATA Samsung Enterprise SSD。
如果仅查看这些内容,您认为哪一个构建时间最短?第二呢?令我震惊的不是第二种配置花费了最少的构建时间,而是第三种配置,构建CyanogenMod 13.0不到14分钟。因此可以肯定,占主导地位的CPU将排在第二位,对吗?又错了。我刚刚完成测试的Build 4,仅用了25分钟以上!仅在这里是我当前的构建位置,比具有一半内核和线程但有3个SSD的SSD阵列的系统慢2分钟,而我的SSD是独立的。如果过热,SM951也会出现节流问题,在这种情况下,这可能是非常真实的因素。第一次也是最慢的构建大约花费了30分钟,这是我构建CM 13.0的唯一几次。
SSD过去也很难获得,因此对该主题的讨论很少。但是,在过去的一年中,零售和二手市场的价格均大幅下降。现在120GB固态硬盘的价格低于50美元,这不再是向系统添加一个固态硬盘的障碍。传统的硬盘驱动器也可以完成这项工作,但是如果不使用SSD,则用户更有可能比其他人先遇到这个瓶颈。
CPU睡眠CPU: 当我在上面提到最大的瓶颈是磁盘I / O时,它的确会假设并非总是如此-我使用的每个构建都具有Intel Core i7。但是,正如我在Xeon服务器上发现的那样,磁盘可以保持正常运行,但随后会通过最重的构建过程使所有8个CPU线程保持高利用率。并尽我所能,如果没有上面发现的RAID阵列,我什至没有发现Haswell-E在大多数构建过程中都无法充分利用。因此,如果您正在寻找最适合自己的建筑,请考虑使用Intel i7-5820K。
的确,它是X99,因此该主板可能比Z97主板贵。但我们仍处于X99周期的第一年。预计Broadwell-E的价格在发布时也将与Haswell-E相似,这意味着您应该能够以与i7-4790K或i7-6700K几乎相同的价格购买发烧友细分市场。
在Intel上,目前没有太多理由超越5820K,因为您可以获得令人印象深刻的构建时间。大部分情况下,以下更高的内核/线程数量以及处理器速度,将使您更快地构建时间。去年,技嘉Brix上的i7-4770R平均让我呆了42分钟。虽然不是最快的,但它满足了我的需求,并允许我进行专用的低功耗配置。您会发现与AMD APU相同-尽管它们目前可能不如Intel APU出色,但它们很容易完成工作,而且通常价格比购买Intel低。我密切关注这种情况,因为如果谣言属实,那么基于Zen的APU可能会大大缩小这一差距。
对于那些选择消除这些瓶颈的人来说,这是一个很大的进步,这种瓶颈更适用于家庭用户而不是办公室。通过消除这些瓶颈,系统的总体性能将得到提高。尤其是游戏玩家会发现,解决这些瓶颈的升级将在几乎所有情况下提高游戏性能。尽管它可能没有赢得最快的构建时间,但是第二次构建却带来了意外的惊喜–在Just Cause 3上的加载时间为30秒 ,而其他许多人则在几分钟内抱怨加载时间。最终,这些构建时间确实是高端,对许多人来说可能算是过高的价格了……但是至少现在,关于更多内核将意味着更快构建的争论终于被搁置了。