动态链接是否会损害 GHC 中的内联性能?

Could dynamic linking hurt inlining thus performance in GHC?

内联使 GHC 可以执行许多复杂的优化,这已经不是什么秘密了。如果我动态 link 一个库(并从中得到一个实际的 dll/so 文件),GHC 是否仍然可以内联它应该有的地方,就好像 link 是静态的,并且取决于其余的dll?或者我实际上得到的优化更少?

当函数被标记为 {-# INLINE #-}{-# INLINEABLE #-} 时——或者如果 GHC 认为它足够便宜™——整个未损坏的 RHS 与接口 .hi 文件一起包含在编译 .o 对象。据我所知。

所以不,我很确定它不会伤害内联。虽然动态链接会影响代码局部性,但与您关心的内联方面相比,这是微观优化。

警告:我实际上没有对任何东西进行基准测试。