如何加快XCode编译速度?
  • 博天堂胜负彩博天堂足彩传媒
  • 日期: 2016-11-21
  • 分类: 经验之谈
  • 阅读量: 70

 

1. 增加XCode执行的线程数

 
可以根据自己Mac的性能,更改线程数设置5:defaults write com.apple.Xcode PBXNumberOfParallelBuildSubtasks 5
 
另外也有一个设置可以开启:defaults write com.apple.dt.Xcode ShowBuildOperationDuration YES
 
XCode默认使用与CPU核数相同的线程来进行编译,但由于编译过程中的IO操作往往比CPU运算要多,因此适当的提升线程数可以在一定程度上加快编译速度。

2.将Debug Information Format改为DWARF

 

在工程对应Target的Build Settings中,找到Debug Information Format这一项,将Debug时的DWARF with dSYM file改为DWARF。

如图:
664334-39456903ac17169b.png

这一项设置的是是否将调试信息加入到可执行文件中,改为DWARF后,如果程序崩溃,将无法输出崩溃位置对应的函数堆栈,但由于Debug模式下可以在XCode中查看调试信息,所以改为DWARF影响并不大。这一项更改完之后,可以大幅提升编译速度。

比如在目前本人负责的项目中,由于依赖了多个Target,所以需要在每个Target的Debug Information Format设置为DWARF。顺便提一下,如果通过Cocoapod引入第三方则Debug Information Format默认就是设置为DWARF的。

  • SDWebImage通过Cocoapod``Debug Information Format的默认设置

     

    664334-bd76c7ae5b360144.png

注意:将Debug Information Format改为DWARF之后,会导致在Debug窗口无法查看相关类类型的成员变量的值。当需要查看这些值时,可以将Debug Information Format改回DWARF with dSYM file,clean(必须)之后重新编译即可。

3.将Build Active Architecture Only改为Yes

 

在工程对应Target的Build Settings中,找到Build Active Architecture Only这一项,将Debug时的NO改为Yes。

664334-fa1eb995c140ce0f.png

这一项设置的是是否仅编译当前架构的版本,如果为NO,会编译所有架构的版本。需要注意的是,此选项在Release模式下必须为NO`,否则发布的ipa在部分设备上将不能运行。这一项更改完之后,可以显著提高编译速度。

4.设计编译优化等级

 

不要再项目中或者静态库中使用-O4,因为这会让Clang链接Link Time Optimizations (LTO)使得编译更慢,通常使用-O3。

664334-b0d4499fba599312.png

注意:在设置编译优化之后,XCode断点和调试信息会不正常,所以一般静态库或者其他Target这样设置。

4.资源整合

4.1 将常用的代码及文件打包成静态库

4.2 添加预编译文件,把常用的头文件放到预编译文件里面

4.3 能用@class就用@class


<友情连结> 环亚娱乐ag88官方网站/ 利来国际真人/ 凯发彩票官网/ 化工引擎网/ 中国网站库/