作家
登录

如何将iOS项目的编译速度提高5倍

作者: 来源: 2017-10-20 11:05:25 阅读 我要评论

PCH 的内容会被附加在每个文件前面,而 CCache 是根据文件内容的 MD4 摘要来查找缓存的,是以当你修改了 PCH 或者 PCH 引用到的头文件的内容时,会造成全部缓存掉效,只能全部从新编译。CCache 在初次编译的时刻因为须要更新缓存,会造成编译时光变长,对贝聊的项目来说变长了差不多一倍。是以如不雅 PCH 或者 PCH 惹人的文件被频繁修改的话,缓存就会频繁地 miss,这种情况下还不如不消 CCache。

为了避免以上这种情况,我建议在 PCH 琅绫擎尽量少惹人头文件,只保存比较少更改的体系框架和第三方类库的头文件。最好是把 PCH 彻底删除,反正苹不雅如今也不建议应用 PCH 了,Xcode 新建的项目默认都是不带 PCH 的。

在团队内部共享缓存文件夹

这个优化方法我测验测验过,最终效不雅不是很好,是以没有采取。CCache 的官方文档中有一段关于共享缓存文件夹的解释,描述了若何修改 CCache 的设备,让编译缓存可以或许在多台电脑之间公用,理论上只要个一一小我编译过的文件其他人就能直接下载到了,节约了全部团队的时光。因为 Buck 也有类似的机制,我认为值得测验测验一下,便在公司局域网内搭建了一个 OwnCloud 网盘,让大年夜家把本身电脑上的 CCache 缓存目次放上去共享。固然实验是成功了,然则实际效不雅并不好。因为同步在多台电脑上大年夜小达到几个G的缓存目次,须要在后台进行很多文件的比较和传输的工作,在编译的同时进行这些操作会消费不少计算资本,反而会拖慢编译速度。加上移除掉落 PCH 后,其实缓存的射中率已经相当可不雅了,不太须要经由过程共享缓存来进一步进步缓存射中率,所以我最后放弃了共享缓存这个设法主意。如不雅你对缓存射中率照样不知足的话,可以推敲往这个偏向测验测验一下。

总结

经由过程集成 CCache,我们的项目在 Xcode 琅绫擎的打包(在菜单琅绫擎选择 Product -> Archive)时光大年夜 11~12分钟削减到了 130 秒,大年夜概有五倍的晋升,结不雅喜人。集成的过程其实很简单,我大年夜开端测验测验到集成成功总共就花了两个小时。如不雅你也被过长的编译时光困扰,建议测验测验一下。



  推荐阅读

  化敌为友,Docker 宣布拥抱 Kubernetes

沙龙晃荡 | 去哪儿、陌陌、ThoughtWorks在主动化运维中的实践!10.28不见不散! 在当前企业改变传统的单体应用,拥抱更灵活的、应用容器的云原生 DevOps 模型的大年夜潮之下,Docker 具有先>>>详细阅读


本文标题:如何将iOS项目的编译速度提高5倍

地址:http://www.17bianji.com/lsqh/38068.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)