何时应检查 Xcode 方案的“Parallelize Build”?

When should I check "Parallelize Build" for an Xcode scheme?

提问人:meisel 提问时间:10/9/2015 更新时间:2/12/2021 访问量:21195

问:

我看到此选项在我当前的方案中未选中,并且网络上的一些地方在某些情况下建议不要使用它。有人可以给出一种更彻底的方法来确定何时可以检查此选项的方案吗?

Xcode 编译 并行处理

评论


答:

14赞 kgaidis 10/31/2016 #1

我们不知道“并行构建”设置的内部结构,但我们可以推断出为什么该设置有时可能没有好处。

首先,最好了解“Parallelize Build”的作用。来源

此选项允许 Xcode 通过构建来加快总构建时间 不同时相互依赖的目标。这是一个 在具有许多较小依赖项的项目上节省时间,这些依赖项可以轻松 并行运行。

当有许多目标相互依赖其他目标时,此选项可能会产生问题。

例如,假设一个目标是应用程序目标所依赖的框架。如果对框架目标进行了修改,则在某些情况下,必须在应用程序目标之前生成框架目标。并行化这些是行不通的,因为要使应用程序目标和框架目标很好地协同工作,它们必须“同步”。如果不先编译框架目标中的更改,我们就无法构建应用程序目标。

上面是一个简单的例子,Xcode 可能已经很好地处理了这个例子,但有些项目变得非常复杂,如果不向 Xcode 提供目标依赖项的正确信息,它可能无法正确地并行化你的目标。

总之,如果启用该设置并且没有看到代码在目标之间不同步的任何问题,则该设置可能是有益的,并且可能会降低生成速度。否则,请将其关闭。与所有性能设置一样,请确保测试和测量您是否确实看到了构建速度的提高。

评论

3赞 Blake 6/13/2018
为了支持这个答案,关闭“Parallelize Build”解决了我在尝试构建具有许多依赖框架的复杂项目时收到的一些“找不到文件”错误。
5赞 Hayden Holligan 10/25/2019
@Blake这意味着您的依赖项和框架存在问题。您应该诊断并修复这些错误,而不是通过禁用“并行构建”来阻碍自己