mcz*_*nek 6 haskell runtime compilation lazy-evaluation
我知道有些地方懒惰评估会阻止需要计算。例如,将两个数字相加,然后将它们传递给一个最终从未被使用的函数参数。
但在我看来,存储和加载稍后要使用的操作会产生很多开销,而且这种开销通常会抵消任何收益。
有人可以解决这个问题吗?
你是对的。惰性求值确实有很大的开销,而且大多数时候你不会从中获得实际的性能提升。惰性求值的主要原因是它很方便——它使 Haskell 的语言语义更清晰,并且(例如)惰性/无限列表有时对程序员来说很方便。
幸运的是,编译器通常可以优化内部循环之外的惰性机制,否则幼稚的实现会导致显着的性能损失。
| 归档时间: |
|
| 查看次数: |
184 次 |
| 最近记录: |