@@ -53,7 +53,8 @@ testBindLeft n' = do
5353
5454testMap :: forall m . MonadEff BenchEff m => Int -> m Unit
5555testMap n = do
56- res <- mapLoop n (pure 0 )
56+ arr <- liftEff mkArr
57+ res <- mapLoop n (liftEff $ pushToArr arr 0 )
5758 pure unit
5859 where
5960 mapLoop :: Monad m => Int -> m Int -> m Int
@@ -76,9 +77,15 @@ extended = do
7677 log header
7778 bench2 " >>=R" testBindRight testBindRight [20000 , 50000 , 100000 , 1000000 ]
7879 bench2 " >>=L" testBindLeft testBindLeft [20000 , 50000 , 100000 , 1000000 ]
79- bench2 " map" testMap testMap [10000 , 20000 , 50000 , 100000 , 1000000 , 10000000 ]
80+ bench2 " map" testMap testMap [10000 , 20000 , 50000 , 100000 , 1000000 ]
81+ timed [" map" , " Ef" , " 10000000" ] $ testMap 10000000 -- Aff can't handle this number I got- JavaScript heap out of memory
8082 bench2 " apply" testApply testApply [10000 , 20000 , 50000 , 100000 , 1000000 ]
8183
84+ timed :: Array String -> Ef BenchEff Unit -> Eff BenchEff Unit
85+ timed msg ef = do
86+ let eff = liftEf ef
87+ logBench' msg $ benchWith' 5 \_ -> unsafePerformEff eff
88+
8289header :: String
8390header =
8491 " | bench | type | n | mean | stddev | min | max |\n " <>
@@ -97,8 +104,8 @@ bench3 name buildEff buildEf buildAff vals = for_ vals \val -> do
97104 logBench' [name <> " build" , " Ef" , show val] $ benchWith' 1000 \_ -> buildEf val
98105 let eff = liftEff $ buildEff val
99106 logBench [name <> " run" , " Eff" , show val] $ benchWith' 1000 \_ -> unsafePerformEff eff
100- let aff = buildAff val
101- logBench [name <> " run" , " Aff" , show val] $ benchWith' 1000 \_ -> unsafePerformEff $ launchAff_ aff
107+ let aff = launchAff_ $ buildAff val
108+ logBench [name <> " run" , " Aff" , show val] $ benchWith' 1000 \_ -> unsafePerformEff aff
102109 let ef = liftEf $ buildEf val
103110 logBench' [name <> " run" , " Ef" , show val] $ benchWith' 1000 \_ -> unsafePerformEff ef
104111
@@ -111,8 +118,8 @@ bench2
111118bench2 name buildEf buildAff vals = for_ vals \val -> do
112119 logBench [name <> " build" , " Aff" , show val] $ benchWith' 4 \_ -> buildAff val
113120 logBench' [name <> " build" , " Ef" , show val] $ benchWith' 4 \_ -> buildEf val
114- let aff = buildAff val
115- logBench [name <> " run" , " Aff" , show val] $ benchWith' 4 \_ -> unsafePerformEff $ launchAff_ aff
121+ let aff = launchAff_ $ buildAff val
122+ logBench [name <> " run" , " Aff" , show val] $ benchWith' 4 \_ -> unsafePerformEff aff
116123 let ef = liftEf $ buildEf val
117124 logBench' [name <> " run" , " Ef" , show val] $ benchWith' 4 \_ -> unsafePerformEff ef
118125
0 commit comments