【问题标题】:When to use the XCode Distributed Build Feature何时使用 XCode 分布式构建功能
【发布时间】:2011-06-22 11:32:37
【问题描述】:

我在一个小型 iPhone 开发团队工作,在我们的办公室里,我们至少有 4 个 XCode 副本随时在网络上运行。考虑让每个人都运行它。

我们使用标准 WIFI 交换机联网,因此网络速度和延迟不如有线网络...

只是想知道,使用分布式构建是否有任何实时收益?一旦它通过网络来回传递相关数据。至少对于相对较小的项目而言。

【问题讨论】:

  • 您的构建现在需要多长时间?
  • 大约 15-20 秒,不过我的构建非常有规律,所以它正在加起来。

标签: iphone xcode build compilation distributed


【解决方案1】:

这取决于您的项目、它的依赖项以及必须传输的数据量。

15-20 秒并不可怕。当然,总体上还有更多工作要做。如果您使用的是双核(未提供该信息),那么每个人都将其分流到速度非常快的 Mac Pro 上可能是个好主意,而不是彼此分流。

就项目配置而言:如果您的项目中有一堆依赖库,那么禁用预编译头文件可能会有所帮助。大部分等式是依赖项的平均数量,以及要生成的对象的数量。

在 15 到 20 秒时,这将有助于许多开发人员编写代码,以便他们在退出之前优化构建时间。如果是几分钟,那么您可能想直接跳入具有 8 或 12 核的分布式构建。

小型项目构建缓慢的一个容易被忽视的方面:禁用每次构建的静态分析,然后每隔一小时手动运行一次,然后修复所有问题。

否则,您的项目可能会被划分为更小的项目/库。很有可能,您不会总是编辑相同的依赖项。

假设编译、链接等是此时花费的时间:其余大部分都属于构建 c 和 c++ 程序所涉及的典型问题。最小化您的依赖关系并包含图表。其实用 objc 很容易实现;由于大部分接口都使用 objc 类型,因此您可以使用 forwards。

如果您的库很小(例如生成的对象少于 50 个),那么您也可以通过不使用预编译头文件来获得加速。如果一切都已经取决于您包含 pch 所包含的 12 个系统框架......那么请在下一个项目中尝试。

当然,您可以尝试对干净的重建、使用生成的 pch 文件的构建和几个增量构建进行计时,以便得出结论。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-18
    • 1970-01-01
    • 2014-10-13
    • 1970-01-01
    • 2013-03-25
    • 2011-07-14
    相关资源
    最近更新 更多