前言

本文仅调研如何在下载仓库的过程中进行提速,其它诸如编译的优化不在本文讨论范围。

iOS 组件仓库多通过cocoapods管理,一个完整的组件库install过程,大量的时间开销涉及Git clone、网络资源文件下载等。

影响Git clone速度的因素有多种,比如物理网络、仓库体积、clone协议、深浅拷贝等。

Git clone 协议分为HTTPS、SSH两种。

网络资源文件通过阿里云或者腾讯云管理,享受CDN优化。

下载过程对比

综上,以工程某业务涉及的几个Git仓库为例。

列举通过不同clone协议、文件管理方式来对比cocoapods install 下载过程的时间开销。

仓库1

1、git https

10分41秒

2、git ssh

6分钟9秒

3、curl zip

21秒

仓库2

1、git https

5分钟49秒

2、git ssh

3分钟32秒

3、curl zip

3分51秒

仓库3

1、git https

16分32秒

2、git ssh

9分40秒

3、curl zip

3分21秒

小结

以上以app中某业务涉及的仓库举例,有代表性,其它仓库同理类推。

如上表格统计:

  1. ssh协议clone代码优于https协议

  2. 纯zip管理framework等依赖,优于git管理

建议:

1、 Git clone,从目前的https协议调整为使用ssh协议,可参考 批量修改pod spec中的git URL 进行批量修改

2、 git仓库大库需要瘦身,采用git + http zip方式管理代码及资源文件

  • 关于瘦身,可参考 Git瘦身

  • 关于 zip 文件托管及podspec制作,可参考bugly或者高德地图等开源库的zip文件托管

3、 cocoapods install 浅拷贝加速 ,可参考 cocoapods install加速