我正在为sorting library MArrays工作。速度很重要,所以我想尽可能地优化它。
目前,我只是INLINE排序功能。与未优化的代码相比,这可以将代码加速10倍以上。但是,如果在多个地方使用这些函数,这很容易破坏代码大小,并减慢编译速度。
唯一的另一种选择似乎是对所有现有MArray实例的SPECIALIZE函数。这也会扩大生成的代码,但只能通过一个常数因子,这不取决于函数的使用次数。问题是,是否有可能出现新的MArray实例?或者是MArray如此特殊并且绑定到Haskell的内部,以便我可以确定其他模块不能定义新的实例吗?