0

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

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

所以我的第一个疑问是,如果在运行时使用更多动态调度尽我所能减少编译时间,但会以运行时开销为代价。

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

4

1 回答 1

0

对于标题问题:

编译时间是一个函数:

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

上述每个步骤都取决于使用哪些技术来完成该步骤的每个结果以及源文件的大小/复杂性。步骤的顺序和数量具有一定的灵活性。

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

于 2017-06-05T10:30:40.767 回答