如何通过 Haskell 中的系统时间函数获取程序的运行时间?我想测量整个程序和/或单个函数的执行时间。
user645466
问问题
9227 次
4 回答
22
1)如果你想对某些东西进行基准测试,请使用标准包。
2)如果你想为一个函数计时并且是积极的,你已经根据需要控制了懒惰,那么只需Data.Time.getCurrentTime
从time包中使用。:
import Data.Time
...
start <- getCurrentTime
runOperation
stop <- getCurrentTime
print $ diffUTCTime stop start
在timeit包中可以找到上述模式的更光滑的包装。
3) 如果您真的想要恰好用 Haskell 编写的程序time
的运行时间,请使用您的系统实用程序。对于大多数 POSIX 系统(Mac、Linux),只需运行:
$ time ./SomeProgram
它会报告用户、墙和系统时间。
于 2011-05-11T18:13:54.517 回答
6
:set +s
如果使用 ghci 真的很整洁,否则您可以使用Criterion.Measurement
,请参阅我对另一个问题的回答示例。
于 2014-03-23T07:02:50.343 回答
4
我不确定它有多准确,但是:set +s
在 ghci 中使用会显示用于后续计算的时间和空间。
于 2011-05-11T19:22:18.443 回答