在数字哈斯克尔惹巴教程Wiki,有一个通道读取(上下文):惹巴性能与列表
10.1融合,以及为什么需要它
惹巴主要取决于阵列的融合实现快速代码。融合是 GHC执行的内联和代码转换的组合,当 它编译您的程序时,它是一个奇特的名字。融合过程将在Repa库中定义的数组填充 循环与您在自己的模块中编写的“工作”函数合并。如果融合过程失败,那么生成的程序将比需要的慢得多,通常使用普通Haskell列表的等效程序的速度要慢10倍。另一方面,如果提供融合工作,则所产生的代码将运行得如同完全写入的C程序一样快。一旦你了解到底发生了什么,制作融合作品并不难 。
,我不明白的部分是这样的:
“如果这种融合过程中出现故障,那么 产生的程序会比实际需要的要慢得多,经常10倍 的慢等价的程序使用普通的Haskell列表。“
我明白为什么它会运行较慢,如果流融合失败,但为什么它比列表慢得多?
谢谢!
问题的修正是“融合过程失败”的方式/原因? –