gpt4 book ai didi

performance - Haskell 性能提升的简单技巧(关于 ProjectEuler 问题)?

转载 作者:行者123 更新时间:2023-12-03 15:08:43 24 4
gpt4 key购买 nike

我是通过阅读和解决 Project Euler 问题来编程和学习 Haskell 的新手。当然,要提高这些问题的性能,最重要的是使用更好的算法。但是,我很清楚,还有其他简单且易于实现的方法来提高性能。粗略搜索了this question , 和 this question ,它给出了以下提示:

  • 使用 ghc 标志 -O2 和 -fllvm。
  • 使用 Int 类型而不是 Integer,因为它是未装箱的(甚至是 Integer 而不是 Int64)。这需要键入函数,而不是让编译器即时决定。
  • 使用 rem 而不是 mod 进行分区测试。
  • 使用Schwartzian transformations在适当的时候。
  • 在递归函数中使用累加器(我相信是尾递归优化)。
  • 内存 (?)

  • (一个答案还提到了 worker /包装器转换,但这似乎相当先进。)

    问题:在 Haskell 中可以进行哪些其他简单的优化来提高 Project Euler 式问题的性能?是否有任何其他特定于 Haskell(或特定于函数式编程?)的想法或功能可用于帮助加快解决 Project Euler 问题的速度?相反,应该注意什么?有哪些常见但低效的事情需要避免?

    最佳答案

    以下是我经常引用的 Johan Tibell 的一些不错的幻灯片:

    Haskell Performance Patterns

    关于performance - Haskell 性能提升的简单技巧(关于 ProjectEuler 问题)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11481773/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com