[Haskell-cafe] newbie timing question

Spencer Janssen sjanssen at cse.unl.edu
Fri Jan 26 18:20:22 EST 2007


On Jan 26, 2007, at 4:56 PM, Sean McLaughlin wrote:
>
> Hello,
>
> I'm trying to write a simple function to time an application.
>
> -- this doesn't work
>
> time f x =
>   do n1 <- CPUTime.getCPUTime
>      let res = f x in
>        do n2 <- CPUTime.getCPUTime
>           return (res,n2 - n1)
>
> On a function that takes 8 seconds to complete, returns
> (True,46000000)

Remember that Haskell is lazy -- res won't be evaluated until it is  
forced.  See the evaluate function in Control.Exception to force a  
value in the IO monad.


Spencer Janssen


More information about the Haskell-Cafe mailing list