增加动态调度的使用会减少编译时间吗?

Will increasing the use of dynamic dispatch reduce compile time?

在swift中,编译时间真的很慢,项目中的代码量增加了。所以我一直在寻找减少时间的方法。一种方法可能是使用 finalstatic 等语言关键字来更改编译器在这种情况下使用静态和动态调度处理代码的方式。

但据我所知,最好避免减少动态调度的运行时开销

所以我的第一个疑问是,如果我在运行时尽我所能使用更多的动态分派来减少编译时间,但会增加运行时开销。

我的第二个疑问是运行时开销如此糟糕?您可以牺牲编译时间来减少开销吗?

对题目问题:

编译时间是以下函数:

  • 正在扫描
  • 正在解析
  • 符号管理
  • 语义验证
  • 类型检查(正如@Ron Napier 指出的那样)
  • 代码路径优化
  • 发出机器代码或 LLVM-IR

上面的每个步骤都取决于用于完成该步骤的每个结果的技术和源文件的 size/complexity。在步骤的顺序和数量上有一定的灵活性。

使用动态调度是一个 运行 时间的功能,值得另一个问题。