Hello Mirko,

Friday, May 12, 2006, 4:42:02 PM, you wrote:

>> PS: I am still curious: does threadDelay use
>> the wall clock or the per-process clock (CPU time)?

> I think it uses wall clock time. Proof:

>> And regardless of the answer - how could one obtain
>> the opposite behaviour? (I don't find this discussed
>> in the visible docs. Or am I missing something?)

use threadDelay in cycle, testing CPU time each time. the following
code used by me to measure both wall and CPU time. but i should say
that cpu time measurement sometimes gives negative results :)  i think
it may be because it returns time for CURRENT OS thread, but Haskell
runtime sometimes creates new OS thread and continue execute Haskell
code in this new created thread (at least under Windows)


benchmark h str times action = do
      prev <- getCPUTime
      prev2 <- getClockTime
      action
      current <- getCPUTime
      current2 <- getClockTime
      let secs = fromIntegral (current-prev) / 1e12
          secs2 = diffTimes current2 prev2
      putStrLn$ str ++ ": " ++ showTime secs2 ++ " (user: " ++ showTime secs ++ 
")"

showTime secs  =  showFFloat (Just 3) secs " secs"

diffTimes (TOD sa pa) (TOD sb pb)  =  i(sa - sb) + (i(pa-pb) / 1e12)

i x = fromIntegral x




-- 
Best regards,
 Bulat                            mailto:[EMAIL PROTECTED]

_______________________________________________
Haskell mailing list
Haskell@haskell.org
http://www.haskell.org/mailman/listinfo/haskell

Reply via email to