haskell - 我怎样才能获得 GHC 所做的最聪明的优化?

标签 haskell optimization ghc compiler-optimization

关闭。这个问题需要更多 focused .它目前不接受答案。












想改进这个问题?更新问题,使其仅关注一个问题 editing this post .


8年前关闭。







Improve this question




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

我专门寻找 GHC 进行的非直观优化,这些优化可能会对性能产生严重影响,并展示与惰性评估或纯度相关的编译器优化的力量。并直接解释如何解决它们。

最好的答案将是:

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

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

    关于haskell - 我怎样才能获得 GHC 所做的最聪明的优化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20847281/

    相关文章:

    haskell - "Contraint is no smaller than the instance head"是什么意思以及如何解决

    python - 优化多个for循环

    haskell - "cabal install ___"破坏以前安装的软件包

    haskell - GHC 分析文件和图表矛盾

    haskell - 如何在 Haskell 中编写游戏事件循环(例如 setTimeout)?

    haskell - cabal 无法更新和 "some packages failed to install"

    haskell - Haskell 中的通用 'unwrap' 函数?

    sql - 对表建立索引以获得更好的查询性能

    JavaScript:合并文件没有问题?

    haskell - GHC 内部结构 : is there C implementation of the type system?