Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
22
Task/Rate-counter/Haskell/rate-counter.hs
Normal file
22
Task/Rate-counter/Haskell/rate-counter.hs
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
import Control.Monad
|
||||
import Control.Concurrent
|
||||
import Data.Time
|
||||
|
||||
getTime :: IO DiffTime
|
||||
getTime = fmap utctDayTime getCurrentTime
|
||||
|
||||
addSample :: MVar [a] -> a -> IO ()
|
||||
addSample q v = modifyMVar_ q (return . (v:))
|
||||
|
||||
timeit :: Int -> IO a -> IO [DiffTime]
|
||||
timeit n task = do
|
||||
samples <- newMVar []
|
||||
forM_ [0..n] $ \n -> do
|
||||
t1 <- getTime
|
||||
task
|
||||
t2 <- getTime
|
||||
addSample samples (t2 - t1)
|
||||
|
||||
readMVar samples
|
||||
|
||||
main = timeit 10 (threadDelay 1000000)
|
||||
Loading…
Add table
Add a link
Reference in a new issue