在 GHCi 中获取评估时间



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

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

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

这能做到吗?

如果在 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)

请注意,这将是解释器中计算的表达式的时间,没有优化,因此它不一定是实际编译代码中需要多长时间的准确度量,甚至不一定是同一代码的两个版本中哪个版本会更快。为此,请查看标准基准测试库。

最新更新