Use WHNF in benchmarks.

This commit is contained in:
Maciej Bendkowski 2022-01-23 19:40:26 +01:00
parent 2924341479
commit 90727a1474

View File

@ -1,7 +1,7 @@
import BinTree (BinTree)
import BinTreeSampler (randomBinTreeIO)
import Control.Monad (replicateM)
import Criterion.Main (bench, defaultMain, nfIO)
import Criterion.Main (bench, defaultMain, whnfIO)
sampler :: Int -> Int -> Int -> IO [BinTree]
sampler n lb ub = replicateM n (randomBinTreeIO lb ub)
@ -9,5 +9,9 @@ sampler n lb ub = replicateM n (randomBinTreeIO lb ub)
main :: IO ()
main =
defaultMain
[ bench "binTree" $ nfIO (sampler 100 3600 4400)
[ bench "1 binary tree" $ whnfIO (sampler 1 3600 4400)
, bench "10 binary trees" $ whnfIO (sampler 10 3600 4400)
, bench "100 binary trees" $ whnfIO (sampler 100 3600 4400)
, bench "1000 binary trees" $ whnfIO (sampler 1000 3600 4400)
, bench "10,000 binary trees" $ whnfIO (sampler 10000 3600 4400)
]