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

因为我可以看到它的到来:这是一个与GHC预计可以可靠执行哪些优化不同的问题? 因为我不是要求最可靠的优化,而是最聪明/最强大的优化。

我专门寻找GHC所做的非直观优化,这会对性能产生严重影响,并展示与延迟评估或纯度相关的编译器优化的能力。 并直接解释如何解决这些问题。

最好的答案将有:

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

  • 流融合可能是最大的一个。 它变成了一些sum . map (+1) . filter (>5) sum . map (+1) . filter (>5) sum . map (+1) . filter (>5) ,名义上将两个新列表分配到在恒定空间中操作的简单循环中。

    链接地址: http://www.djcxy.com/p/7473.html

    上一篇: How can I get at the cleverest optimizations that GHC makes?

    下一篇: GHC Performance: Why does more work take *much* less time?