我什么时候应该检查 "Parallelize Build" 是否有 Xcode 方案?

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

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

我们不知道“Parallelize Build”设置的内部原理,但我们可以推断出为什么该设置有时可能没有用处。

首先最好了解“Parallelize Build”的作用。 Source:

This option allows Xcode to speed up total build time by building targets that do not depend on each other at the same time. This is a time-saver on projects with many smaller dependencies that can easily be run in parallel.

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

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

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

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