如何正确优化MArray功能以提高速度?

时间:2013-01-15 08:17:27

标签: arrays performance haskell ghc marray

我正在为sorting library MArrays工作。速度很重要,所以我想尽可能地优化它。

目前,我只是INLINE排序功能。与未优化的代码相比,这可以将代码加速10倍以上。但是,如果在多个地方使用这些函数,这很容易破坏代码大小,并减慢编译速度。

唯一的另一种选择似乎是对所有现有MArray实例的SPECIALIZE函数。这也会扩大生成的代码,但只能通过一个常数因子,这不取决于函数的使用次数。问题是,是否有可能出现新的MArray实例?或者是MArray如此特殊并且绑定到Haskell的内部,以便我可以确定其他模块不能定义新的实例吗?

1 个答案:

答案 0 :(得分:3)

似乎最好的方法是使用INLINE pragma。来自sort vector-algorithmsuses it too