你好,游客 登录 注册 发布搜索
背景:
阅读新闻

如何加快XCode编译速度?

[日期:2016-11-18] 来源:CocoaChina   作者: [字体: ]

  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 。

  如图:

  

 

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

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

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

  

 

  注意:将 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 。

  

 

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

  4.设计编译优化等级(????)

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

收藏 推荐 打印 | 录入:admin | 阅读:
相关新闻      
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数
点评:
       
评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款