@@ -14,6 +14,7 @@ import UnliftIO
1414
1515import Effectful
1616import Effectful.State.Dynamic
17+import Utils
1718
1819unliftBenchmark :: Benchmark
1920unliftBenchmark = bgroup "unlift"
@@ -24,7 +25,7 @@ unliftBenchmark = bgroup "unlift"
2425 ]
2526 , bgroup "shallow"
2627 [ bgroup "dummy"
27− [ bench "seq" $ nfAppIO (runShallow SeqUnlift) benchDummy
28+ [ bench "seq" $ nfAppIO (runShallow . withUnliftStrategy SeqUnlift) benchDummy
2829 , shallowConc "conc" 1 benchDummy
2930 ]
3031 , shallowConc "async" 1 benchAsync
@@ -32,7 +33,7 @@ unliftBenchmark = bgroup "unlift"
3233 ]
3334 , bgroup "deep"
3435 [ bgroup "dummy"
35− [ bench "seq" $ nfAppIO (runDeep SeqUnlift) benchDummy
36+ [ bench "seq" $ nfAppIO (runDeep . withUnliftStrategy SeqUnlift) benchDummy
3637 , deepConc "conc" 1 benchDummy
3738 ]
3839 , deepConc "async" 1 benchAsync
@@ -42,23 +43,6 @@ unliftBenchmark = bgroup "unlift"
4243
4344----------------------------------------
4445
45−runShallow :: UnliftStrategy -> Eff '[IOE] a -> IO a
46−runShallow s = runIOE . withUnliftStrategy s
47−
48−runDeep
49− :: UnliftStrategy
50− -> Eff '[ State (), State (), State (), State (), State ()
51− , State (), State (), State (), State (), State ()
52− , IOE
53− ] a
54− -> IO a
55−runDeep s = runIOE
56− . evalState () . evalState () . evalState () . evalState () . evalState ()
57− . evalState () . evalState () . evalState () . evalState () . evalState ()
58− . withUnliftStrategy s
59−
60−----------------------------------------
61−
6246shallowConc
6347 :: String
6448 -> Int
@@ -66,13 +50,13 @@ shallowConc
6650 -> Benchmark
6751shallowConc name n f = bgroup name
6852 [ bench "ephemeral/limited" $ nfAppIO
69− (runShallow (ConcUnlift Ephemeral $ Limited n)) f
53+ (runShallow . withUnliftStrategy (ConcUnlift Ephemeral $ Limited n)) f
7054 , bench "ephemeral/unlimited" $ nfAppIO
71− (runShallow (ConcUnlift Ephemeral Unlimited)) f
55+ (runShallow . withUnliftStrategy (ConcUnlift Ephemeral Unlimited)) f
7256 , bench "persistent/limited" $ nfAppIO
73− (runShallow (ConcUnlift Persistent $ Limited n)) f
57+ (runShallow . withUnliftStrategy (ConcUnlift Persistent $ Limited n)) f
7458 , bench "persistent/unlimited" $ nfAppIO
75− (runShallow (ConcUnlift Persistent Unlimited)) f
59+ (runShallow . withUnliftStrategy (ConcUnlift Persistent Unlimited)) f
7660 ]
7761
7862deepConc
@@ -84,13 +68,13 @@ deepConc
8468 -> Benchmark
8569deepConc name n f = bgroup name
8670 [ bench "ephemeral/limited" $ nfAppIO
87− (runDeep (ConcUnlift Ephemeral $ Limited n)) f
71+ (runDeep . withUnliftStrategy (ConcUnlift Ephemeral $ Limited n)) f
8872 , bench "ephemeral/unlimited" $ nfAppIO
89− (runDeep (ConcUnlift Ephemeral Unlimited)) f
73+ (runDeep . withUnliftStrategy (ConcUnlift Ephemeral Unlimited)) f
9074 , bench "persistent/limited" $ nfAppIO
91− (runDeep (ConcUnlift Persistent $ Limited n)) f
75+ (runDeep . withUnliftStrategy (ConcUnlift Persistent $ Limited n)) f
9276 , bench "persistent/unlimited" $ nfAppIO
93− (runDeep (ConcUnlift Persistent Unlimited)) f
77+ (runDeep . withUnliftStrategy (ConcUnlift Persistent Unlimited)) f
9478 ]
9579
9680----------------------------------------