桥接头中导入的文件数量是否会影响编译时间?

fwi*_*tra 12 ios swift

我有一个理论,但我不知道如何测试它.我们有一个相当大的iOS项目,包括大约200个Swift文件和240个obj-C文件(以及相同数量的头文件).我们仍然使用Swift 1.2,这意味着整个项目都会经常重建.

我注意到每个.swift文件大约需要4-6秒才能编译; 在其他项目中,这最多为2.

现在,我注意到在构建输出中,头文件中生成的警告会针对每个.swift文件重复出现,这让我相信swift编译器会重新解析桥接头中包含的所有头文件.由于我们在桥接头中有~160个import语句,因此这种情况相加.

所以,基本问题:

  • 我们的桥接头的大小会影响构建时间吗?
  • 有没有办法优化它,所以它只解析标题一次?
  • Swift 2有同样的问题吗?
  • 还有其他任何优化技巧吗?除了重写Swift中的所有内容之外,这对我们来说是一个劳动密集型的项目.

kb.*_*kb. 2

我只能根据我在以前工作场所的经历来谈谈,这意味着有些事情可能会发生变化。另外,我不确定这是否对您的具体情况有帮助,因为您将 Objective C 和 Swift 混合在一起,而我从未这样做过,但这个理论仍然是合理的。

简而言之,是的,桥接标头的大小会影响编译时间,并且您是正确的,它会为每个文件/包含内容解析一次。

优化此问题的正确方法似乎是将项目拆分为模块(有时也称为“框架”),因为每个模块都是单独编译的,因此如果没有任何更改,则不会重新编译。