pod update耗时的简单分析
2017-11-09 本文已影响43人
CoderDancer
CocoaPods中,pod install
只会对.podfile
中,新的库版本进行分析,并升级到podfile中的指定版本。
区别于pod install
,pod update
会到cocoaPods的仓库地址中,去比对podfile
文件中,依赖的文件进行版本比对和按情况升级。
pod update
通常是比较耗时的操作,至于原因,本文会对CocoaPods在执行pod update
时的耗时影响做了简单分析:
pod update
的5个步骤:
1. resolve_dependencies
* update repo(升级仓库文件,下载至本地)
* 解析podfile
2. download_dependencies(下载podfile中的依赖及其间接依赖)
3. generate_pods_project(即生成dependency在Pods工程中的target,以及写pod file.lock等文件)
4. integrate_targets
5. perform_post_install_actions
pod update
的几个步骤,项目不同,耗时不同。
耗时分析
但针对几个不同的步骤,其耗时状况如下:
步骤 | 影响因素 | 耗时状况 |
---|---|---|
resolve_dependencies | 轻量化操作,耗时很少 | 少 |
download_dependencies | 1. 有缓存明显好于无缓存 2. 需要升级的依赖库越耗时 | 多 |
generate_pods_project | 需要update的依赖库越多越多,越耗时 | 较多 |
integrate_targets | 常规操作,耗时少,影响因素少 | 少 |
perform_post_install_actions | 常规操作,耗时少,影响因素少 | 少 |
当然耗时的很大的影响因素就是网络状况。
国内开发环境下,很多人用淘宝的镜像就是这个原因,但可以翻墙的情况下,其影响较小。
结语
但坦白来说,pod update的耗时很大程度上取决于依赖库的多少,所以开发者在选择依赖库时,择优而取。