获得GHCi的评估时间

问题描述 投票:22回答:1

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

time $ slow [1,2,3,4,5]

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

可以这样做吗?

haskell ghc timing ghci
1个回答
41
投票

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

例:

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

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

© www.soinside.com 2019 - 2024. All rights reserved.