我有一些源文件,每个文件的行数从20,000到120,000不等。它们由简单(非常长的)函数组成,只是对C方法(在苹果的API中,例如Quartz)的调用序列,并且应该很容易编译。
然而,Xcode花费几个小时来编译它们,并且似乎每次xcodeproj文件更改时都会强制重新编译(xcode bug?)。此外,进行归档(以上传到App Store)无论如何都会导致完全重新编译。
这些文件非常长 - 它们是代码生成工具的输出 - 我可能最终能够使它们更小 - 但肯定有办法让clang正确地处理这么长的文件吧?
我尝试过以下方法:
- 以32位模式运行 - 不可能:苹果现在已经删除了此功能https://stackoverflow.com/a/9791396/153422
- 增加更多CPU / 内核 - 可忽略的效果:clang 在大多数操作上都是单线程的
- 增加更多RAM - 可忽略的影响:8 GB RAM 并没有明显优于 2 GB RAM(不足为奇:这只是一个文件 - 非常不可能用完几个内存!)
- 添加SSD驱动器 - 小影响:稍微慢一些的笔记本电脑+ SSD比速度稍快一些的桌面电脑+普通硬盘编译速度略有提高(10%?)
- 禁用SVG / GIT集成 - 没有影响:苹果的 SVN 实现存在许多错误,我们已经将其关闭了 - 对于所有项目都是如此。
- 禁用OS X索引 - 小影响:苹果的 Spotlight / 后台索引方式存在许多问题。关闭它可以使构建时间稍微快一点 - 但也可能是因为它能使Xcode总体上更快。