云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

数据库_阿里云镜像_年度促销

小七 141 0

云数据库服务器_数据库_物联网智能水表

===========================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================交付和发布的业务和运营层面的挑战Android产品(第一部分和第二部分)。我们还讨论了设备和芯片制造商在构建基于Android的堆栈和平台中的软件时所面临的挑战。这篇文章是关于提高Android平台构建性能的软件技术,也就是说,给定一个固定的硬件配置,可以做些什么来提高Android平台构建的整体性能和吞吐量?这篇文章主要基于"加速Android构建"的数据,该演示文稿将由CloudBees在2013年2月18日举行的2013年Android Builders峰会上发布——幻灯片在这里提供。这篇文章将被更新,引用从演示文稿录制,如果和何时有空。哪里我们今天是吗?Android的基线构建时间是多少?在我们继续这篇文章之前,让我们做一个非常明确的声明:在Android构建系统上工作的Google工程师们已经在大型多核机器上为大型并行性优化了构建。下面是在48核128GB RAM服务器上使用GNU Make运行Android构建的基线图,Y轴上的时间和代表X轴的并行量:启用ccache后,您可以看到改进的构建时间,什么是云计算和大数据,但是,随着并行性的扩大,相对的改进逐渐消失,这表明ccache中可能存在的瓶颈:这还不够快吗?谁在乎加速Android的构建?在2012年11月下旬的一篇文章中,我总结了一家全球知名移动设备制造商的访问,并提出了三点建议:1。上市时间至关重要。质量不容忽视。私有开发/构建云正在发生。在那次会议上,这些公司代表还向我们介绍了在整个开发生命周期中缩短交付周期的执行任务,其中一项关键绩效指标被定义为"10 MLOC应能在不到5分钟内完成"(2012年11月,他们目前的基线为~1小时……)。与CloudBees合作的另一家公司拥有数千名Android开发人员,每周进行大约50000次Android开发人员构建。假设在这样的环境中只减少了一分钟的构建时间,那么每周可以节省大约800小时的时间就很简单了!相反,可以花在向产品添加新特性和功能上的时间,而不是浪费在等待构建完成的时间!值得一提的是,大多数Android设备制造商在基于Android的软件栈中添加了大量的专有定制,这对Android构建环境产生了重大影响。在许多Android环境中,我们已经看到这些补丁有降低构建性能的趋势,并严重影响构建在更高级别的并行化和规模。所以让我们来看看Android平台的构建,我们发现了改进的机会吗?下面列出了一个电子核心的改进,在这里我们可以看到一个关于Android核心的改进,也就是说,在这里我们可以看到一个关于电子核心的改进,时间以分钟为单位沿水平轴表示。可视化中的每个小方框代表一个单独的目标——编译、链接步骤、I/O操作,或者构建过程中可能发生的任何其他操作。在研究图片时,很容易确定几个潜在的改进领域:1。在构建的开始有一个很长的串行阶段,紫色表示makefile的解析时间,或者来自构建系统的开销,在构建系统中决定需要以什么顺序完成哪些工作。2在构建结束时有明显的差距-表明(多余?)生成定义中显式依赖项禁止更积极的并行化的序列化。如果我们在构建中投入更多的核心,会有什么效果?我们可以使用最长的串行链和来自electronicsinsight的电气模拟器报告来帮助回答这个问题,在这里我们可以看到,无论我们将投入多少核,最佳时间可能是15米左右:为什么ccache不能提供更多帮助?在我们研究这些报告的同时,让我们也试着找出一个答案,解释为什么ccache对我们的帮助并没有超过我们所期望的:在上面的图片中,云 服务器,您可以看到,在整个构建时间中有很大一部分是编译时,大约75—但是对于剩下的25个,ccache无能为力工作量。您还可以看到,在17566次编译中,平均编译时间为~1.3s,因此编译时间已经相对较短了快。解决问题解析时间过长的问题是,如果我们可以避免每次解析makefile,并使用相同的输入重用来自上一个构建的解析结果,即不变的makefile、命令行和环境呢?CloudBees Accelerator 7.0的Parse avoidation特性在即将发布的CloudBees Accelerator 7.0中,返利联盟,淘客采集软件,Parse Avoidance特性增加了缓存和存储解析结果的功能,以便在以后相同的构建中重用。让我们来看看通过electronicsight构建Android:正如您所看到的,我们几乎消除了最初的长序列purple makefile解析作业,从而将构建时间缩短了大约2m!解决不必要的串行化问题如果我们能有一个系统,能够自动地从构建中删除所有可能的多余依赖项,而不需要人工干预,这样就可以实现更高、更激进的并行化?CloudBees Accelerator 7.0的依赖关系优化特性在即将发布的CloudBees Accelerator 7.0中,依赖关系优化功能会自动消除和删除任何基于make的构建中多余的依赖关系。让我们通过electronicsinsight来看看Android版本,它也启用了这个功能:正如您所看到的,在构建结束时的序列化是由于多余的依赖关系,大数据处理平台,从整体造型再雕刻一分钟左右时间。总结结论当使用CloudBees Accelerator 7.0及其解析避免和依赖关系优化功能时,我们环境中的普通Android构建时间现在已减少到约12M30秒,无需手动干预或修改构建定义—这是一个全面的减少大约3米或20米!在一个未公开的Android设备制造商客户环境中,CloudBees Accelerator 7.0已经能够将约23m的构建降低到约1500万–减少了800多万或接近40!下面的图表比较了CloudBees Accelerator 7.0与GNU Make在构建vanilla Android build时的表现——值得指出的是,32核上的CloudBees Accelerator 7.0比48核上的GNU Make有更好的性能:下面是用ccache构建vanilla Android build时CloudBees Accelerator 7.0与GNU Make的对比图启用: