我怎样才能获得GHC最聪明的优化?

时间:2013-12-30 20:47:26

标签: haskell optimization ghc compiler-optimization

因为我可以看到它:这是一个与What optimizations can GHC be expected to perform reliably?不同的问题,因为我不是要求最可靠的优化,只是最聪明/最强大的优化。

我特别希望GHC能够对性能产生严重影响的非直观优化,并展示与延迟评估或纯度相关的编译器优化的强大功能。并直接解释如何了解它们。

最佳答案将包括:

  • 优化的解释和为什么它如此聪明或强大
  • 为什么优化会提高性能
  • GHC如何识别何时可以使用此优化
  • 优化实际上将代码转换为
  • 为什么这种优化需要惰性评估或纯度

1 个答案:

答案 0 :(得分:3)

流融合可能是最大的融合。它变成类似sum . map (+1) . filter (>5)的东西,它名义上分配了两个新的列表,进入一个在恒定空间中运行的简单循环。