【发布时间】:2026-01-15 06:20:08
【问题描述】:
我有一个带有很多内部模块的 cabal 包(other-modules 字段)。我相信我会从内联其中的大部分函数中受益。
我是否必须通过所有插入 pragma 或 GHC 和 Cabal 足够聪明来自己进行内联?如果是,那么这种内联将如何执行?如果否则我必须通过插入一个编译指示,我应该更喜欢哪个:INLINE 或INLINABLE(或者甚至可能是合成的inline function) - 出于什么原因?
【问题讨论】:
-
你衡量过哪些函数受益于内联吗?
-
没有。我只是从设计的角度得出这样的结论。该包基本上是作为一个多层次的组合来实现的,即很多功能只是来自其他模块的更简单的功能的组合,这些功能是内部的。很多人不用分解就可以实现这样的功能,所以我认为编译器可以为我做这些。
标签: haskell optimization inline ghc cabal