1
56
通常,您能做的最大的事情是控制头文件的包含。 在源代码中包含“额外”头文件会大大降低编译速度。这也会增加依赖项检查所需的时间。 forward declaration 不使用包含其他标头的标头,而是可以显著减少依赖项的数量,并有助于所有计时。 |
2
23
我写了一篇内容广泛的博文,介绍了我如何改进Spotify的iOS开发周期: Shaving off 50% waiting time from the iOS Edit-Build-Test cycle
1) 停止生成dSYM捆绑包。
|
3
17
就我个人而言,我在Mac开发项目中将编译器切换到LLVMClang,并且已经看到构建时间的大幅减少。还有LLVM-GCC编译器,但我不确定这是否有助于缩短构建时间,但如果LLVM-Clang不适用于iPhone应用程序编译,您也可以尝试使用它。
|
4
12
您可以从终端设置Xcode使用的进程数,如下所示:
请看 Xcode User Defaults 了解更多信息。 |
5
12
如果您没有使用8GB的RAM,请立即升级。 我刚把我的MacBookPro从4GB升级到8GB。我的项目构建时间从2:10到0:45。我被改进搞砸了。它还可以进行web浏览,以研究snappier和索引时的一般Xcode性能等。 |
6
11
要了解如何设置此项,您可以咨询 this development doc . 它还具有其他有用的构建时改进策略,例如使用预编译头和预测构建。 编辑:遗憾的是,从Xcode 4.3开始,苹果似乎已经删除了此功能: http://lists.apple.com/archives/xcode-users/2012/Mar/msg00048.html Xcode 5有一个可以执行CI的服务器版本,但我怀疑这会给临时开发人员构建带来任何好处。但是,有一些未公布的特性应该会显著加快构建时间。 |
7
7
将编译时间减半(至少对于iOS项目)的一个重要技巧是设置 构建设置/体系结构/仅构建活动体系结构 对 . 它的作用(尤其是64位iPad/64位编译器的出现)是 不建 当前未使用的体系结构的二进制文件。 请确保记得重新启用此设置 |
8
6
我使用了一个脚本来使用RAM驱动器,并对我的项目进行了一些“前向声明”优化 建造时间从53秒增加到20秒。 转到命令行。我将脚本作为git存储库的一部分。 “默认写入com.apple.dt.Xcode ShowBuildOperationDuration是”
要查看效果并控制RAM驱动器,请执行以下操作:
注: 我尝试打开-kernel选项(不交换到磁盘),但在我的机器上失败了,说它没有实现。 也许新的操作系统即将推出,我们将看到更多的改进,因为新的文件系统拷贝功能非常快,并且可能使这个脚本变得多余。 |
9
2
如果项目中有多种编译类型(例如Obj-C、Obj-C++、C++),则必须小心避免出现问题。 |
10
2
嘿,我建议你优化你的项目的物理结构。关于这一点有一些很好的理解(至少在C++世界),但是我做Objto-C,同样的原则经常适用。 这是一篇关于项目物理结构优化的好文章,它有助于提高编译时间 Games From Within: Physical Structure Part 1 祝你好运:) |
11
2
一个词:TmpDisk
|
12
1
测试:在克隆的MacBook上构建/运行完全相同的项目(唯一的区别应该是它们的硬件) 旧Macbook Air(1.86GHZ Core 2 Duo仅2GB内存) vs 全新Macbook Pro(2.3GHZ核心i7 8GB RAM)
=>速度增加0到0:15
=>~15秒的提速
所以以获得最快的构建时间。。
|
13
1
如果每次运行时都会重建整个项目,那么这可能就是XCode 7.0中的错误<=8.1给你一段艰难的时光。 创建用户定义的构建设置HEADERMAP_使用_VFS将macbook编译时间从每次75秒缩短到25秒。看见 Xcode 8 does full project rebuild 更多信息。 |
14
-1
我用5960x的CPU切换到Hackintosh,超频到4.4GHz只是为了缩短Xcode编译时间。这是8个内核和16个线程。一台能压碎所有Mac电脑的电脑总共花费3000美元。然而,我已经花了至少10天的时间来安装它,首先是约塞米蒂公司。我有六个月的停机时间,因为我无法更新macOS,而Xcode需要更新的操作系统。我刚让它运转起来,生活又好起来了。
然而,最大的问题是Xcode在编译swift时似乎没有使用多线程。这是瓶颈,我希望他们能尽快解决。 |
daniel451 · 从源代码编译Python:多线程测试? 6 年前 |
mbalug · 为ARM编译c++源代码 6 年前 |
SuzLy · 使用flex编译简单令牌标识符 6 年前 |
user8659414 · Make无法识别我的库! 6 年前 |
Farzad · 序列化CUfunction对象 6 年前 |
Jersey · C++:何时需要重新编译有问题? 6 年前 |