【发布时间】:2012-09-09 09:59:20
【问题描述】:
我有一些源文件,每个文件的长度从 20,000 行到 120,000 行不等。它们由简单(很长)的函数组成,只是对 C 方法的一长串调用(在 Apple 的 API - 例如 Quartz 中),应该很容易编译。
但是,Xcode 需要数小时来编译它们,而且每次 xcodeproj 文件更改时它都会强制重新编译(xcode 错误?)。此外,执行存档(用于上传到 App Store)无论如何都会导致完全重新编译。
这些文件太长了 - 它们是代码生成工具的输出 - 我可能最终能够让它们变小 - 但肯定有办法让 clang 正常工作有这么长的文件?
我尝试过的事情:
- 在 32 位模式下运行 - 不可能:Apple 现已删除此功能 https://stackoverflow.com/a/9791396/153422
- 添加更多 CPU/内核 - 可忽略的影响:clang 在大多数操作中都是单线程的
- 添加更多 RAM - 影响可忽略不计:8 GB RAM 并不明显优于 2 GB RAM(不足为奇:它只是一个文件 - 不太可能会占用大量内存!)
- 添加 SSD 驱动器 - 小影响:CPU + SSD 稍慢的笔记本电脑的编译速度比 CPU + 普通 HD 稍快的台式机稍快(10%?)
- 禁用 SVG/GIT 集成 - 无效:Apple 的 SVN 实施存在问题,我们已经将其关闭 - 适用于所有项目。
- 禁用 OS X 索引 - 小影响:Apple 的 Spotlight/后台索引在很多方面都被破坏了。关闭它会使构建时间更快一些 - 但可能是因为它通常会使 Xcode 更快。
【问题讨论】:
-
pt.3) 大型编译可能受内存限制。内存耗尽肯定会减慢您的构建速度。我已经看到构建消耗了几 GB 的内存。同样,其他阶段可能会消耗大量内存,具体取决于您的文件和构建设置(例如链接)
-
对不起,我不确定你的意思——正如我所说,在这里添加 RAM 没有效果
-
你有没有在代码生成工具中尝试过不同的设置?
标签: ios xcode macos compilation clang