September 2017 Update
This commit is contained in:
parent
bba7bfd280
commit
ba8067c3b7
14570 changed files with 153136 additions and 63871 deletions
|
|
@ -1,13 +1,13 @@
|
|||
import System.CPUTime
|
||||
import System.CPUTime (getCPUTime)
|
||||
|
||||
-- We assume the function we are timing is an IO monad computation
|
||||
timeIt :: (Fractional c) => (a -> IO b) -> a -> IO c
|
||||
timeIt action arg =
|
||||
do startTime <- getCPUTime
|
||||
action arg
|
||||
finishTime <- getCPUTime
|
||||
return $ fromIntegral (finishTime - startTime) / 1000000000000
|
||||
timeIt action arg = do
|
||||
startTime <- getCPUTime
|
||||
action arg
|
||||
finishTime <- getCPUTime
|
||||
return $ fromIntegral (finishTime - startTime) / 1000000000000
|
||||
|
||||
-- Version for use with evaluating regular non-monadic functions
|
||||
timeIt' :: (Fractional c) => (a -> b) -> a -> IO c
|
||||
timeIt' f = timeIt (\x -> f x `seq` return ())
|
||||
timeIt_ :: (Fractional c) => (a -> b) -> a -> IO c
|
||||
timeIt_ f = timeIt ((`seq` return ()) . f)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue