低效的导入如何影响您的项目?

How do inefficient imports affect your project?

AppCode 具有 "Optimise imports" 的功能。

它将采取冗余或未使用的导入并删除它们并重新排列它们等...

我明白了为什么可以完成...如果您有 3 个文件 A、B 和 C...

  1. A 导入 B
  2. C 导入 A 和 B

在这种情况下,您可以删除 C 中 B 的导入。

但是,当这些冗余导入累积起来时,它会对项目产生什么影响?它可以减慢构建速度吗?对产品有影响吗?

在冗余导入的情况下,主要是为了减少代码噪音(即不需要的代码行)。两次导入同一文件不会产生显着的额外成本。 include 确实有 non-trivial 成本,因为它必须打开并读取文件(即使它使用 #ifdef 保护),但 import 试图避免这种情况。即便如此,那里也有一个小成本。

导入您不使用的文件可能会产生很大的 build-time 成本。在 C-like 种语言中,导入意味着 "read the whole file and all of its included files and parse them right here." 这可能非常昂贵。有一些技巧可以避免它变得那么糟糕(特别是预编译 headers),但它很糟糕。因此,摆脱未使用的导入绝对有利于构建时间。

两者都不会对最终产品产生任何影响。如果是这样,那么 AppCode 将删除一个 header 它不应该删除的

新的 @import 语法改变了其中的一些内容,它不需要读取和解析模块的所有 header 文件。但是您仍然希望避免导入 header 不需要整洁的东西。