获取GHCi的时间安排

Chr*_*dal 25 haskell timing ghc ghci

我有一个相对较慢的程序(恰当地命名为慢),我想做类似的事情

time $ slow [1,2,3,4,5]
Run Code Online (Sandbox Code Playgroud)

在控制台(REPL)中获取时间,而不必编译程序然后运行时间.

可以这样做吗?

ehi*_*ird 42

如果输入:set +sGHCi,则在评估每个表达式后将打印时序和内存信息.

例:

Prelude> :set +s
Prelude> sum [1..2^20]
549756338176
it :: (Num a, Enum a) => a
(0.34 secs, 169,197,008 bytes)
Run Code Online (Sandbox Code Playgroud)

请注意,这将是在解释器中评估的表达式的时间,没有优化,因此它不一定是对事物花费多长时间的准确度量,或者甚至是相同代码的两个版本中哪个更快的度量,实际编译的代码.为此,请查看标准基准测试库.