gsp*_*spr 18 polymorphism profiling haskell ghc
我有一个"不必要"多态的代码库,因为几乎每个函数都以某种方式是多态的(为什么不是,什么时候可以?),但最终程序只使用少数具体类型的函数.我已经开始花费一些时间投入SPECIALIZE和INLINABLEpragma试图降低所有这些多态性的性能成本,但是随着我的代码的大小,它非常受欢迎.对于每个函数,有没有办法分析在运行时花费多少时间"完成多态性所需的事情"?
SPECIALIZE
INLINABLE
(注意:我已经问过这个问题而不知道这样的事情是否在技术上是可行的,或者"多态性需要的东西"是否足够明确).
Don*_*art 8
确定成本的过程是:
通常,您会识别一些操作太慢的操作; 通过分析进行编译并精确确定哪些组件成本高昂,然后检查代码以对其进行优化(例如,通过专门化数据结构或功能,更改算法或进行其他更改).
对于性能关键性工作,您将去检查Core以查看微调编译器是否有帮助.
归档时间:
13 年,1 月 前
查看次数:
559 次
最近记录: