我有一个相对较慢的过程(恰如其分地命名为slow),我想做一些类似这样的事情
time $ slow [1,2,3,4,5]
在控制台(REPL)中获取时间,而不是必须编译程序然后运行时间。
这可以做到吗?
发布于 2012-04-27 06:23:31
如果在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基准测试程序库。
https://stackoverflow.com/questions/10342217
复制相似问题