前言
前段时间笔者组内同事十分快速地开发了一个应用(不妨设应用名为QiShareDemo),笔者在使用8+128的Mac Air 运行项目的时候,发现项目编译时间比较久,查看了相关资料,并做了部分实践,落地了这篇文章。
笔者在 clone 了 QiShareDemo 后,发现全量编译编译项目的编译时间为105.207s;
后来经过笔者的部分优化编译时间处理后,全量编译项目的时间缩短为44.573s;
当然这里还可以继续做优化,可以根据项目中具体的代码的编译耗时排序,处理那些编译耗时较长的代码。
一、名词简介
下边笔者对本文中提到的名词做一个简单介绍。
1. 全量编译
以Xcode编译过程为例,笔者理解的全量编译的一种情况为:把Xcode 编译项目时生成的Derived Data 删除后,再次编译项目的过程。
2. 增量编译
以Xcode编译过程为例,笔者理解的增量编译的一种情况为:Xcode 已编译过项目的情况下,我们又修改了部分文件,那么编译的时候,就会编译我们修改过的文件,及引用过相关文件的文件。
3. Swift Compiler
如果项目不是 Objective-C 和 Swift 混编的项目而是纯 Swift 项目,那么编译过程用的是 Swift Compiler,笔者在下文中第三部分的2.1.2部分有提到详情。关于编译的更多详情可以查看 浅谈编译过程
二、Swift 项目的编译过程
使用 Xcode 查看项目具体编译过程的方式如下:
1. 用 Xcode 查看项目具体编译过程
用 Xcode 查看项目编译过程方式:command + b 编译项目,在 Xcode 中,按下图方式查看具体编译过程。
笔者根据 Xcode 编译项目过程,做了如下 Swift 项目编译过程示意图。
2. 查看项目编译时间
我们的目的是要优化项目的编译时间,那么首先我们应该知道当前编译时间。
查看项目编译时间的方式为:在终端中输入如下命令:defaults write com.apple.dt.Xcode ShowBuildOperationDuration YES
之后在 Xcode 顶部的 切换Scheme和运行设备的那一栏中即可看到具体