Ответ 1
Если вы введете :set +s
в GHCi, информация о времени и памяти будет напечатана после оценки каждого выражения.
Пример:
Prelude> :set +s
Prelude> sum [1..2^20]
549756338176
it :: (Num a, Enum a) => a
(0.34 secs, 169,197,008 bytes)
Обратите внимание, что это будет время выражения, которое оценивается в интерпретаторе без оптимизации, поэтому оно не обязательно будет точным измерением того, как долго это происходит, или даже какая из двух версий одного и того же кода будет быстрее, в самом компилированном коде. Для этого взгляните на библиотеку сравнения criterion.