@@ -14,6 +14,7 @@ import UnliftIO
15import Effectful
15import Effectful
16import Effectful.State.Dynamic
16import Effectful.State.Dynamic
18unliftBenchmark :: Benchmark
19unliftBenchmark :: Benchmark
19unliftBenchmark = bgroup "unlift"
20unliftBenchmark = bgroup "unlift"
@@ -24,7 +25,7 @@ unliftBenchmark = bgroup "unlift"
25 , bgroup "shallow"
26 , bgroup "shallow"
26 [ bgroup "dummy"
27 [ bgroup "dummy"
27− [ bench "seq" $ nfAppIO (runShallow SeqUnlift) benchDummy
28+ [ bench "seq" $ nfAppIO (runShallow . withUnliftStrategy SeqUnlift) benchDummy
28 , shallowConc "conc" 1 benchDummy
29 , shallowConc "conc" 1 benchDummy
30 , shallowConc "async" 1 benchAsync
31 , shallowConc "async" 1 benchAsync
@@ -32,7 +33,7 @@ unliftBenchmark = bgroup "unlift"
33 , bgroup "deep"
34 , bgroup "deep"
34 [ bgroup "dummy"
35 [ bgroup "dummy"
35− [ bench "seq" $ nfAppIO (runDeep SeqUnlift) benchDummy
36+ [ bench "seq" $ nfAppIO (runDeep . withUnliftStrategy SeqUnlift) benchDummy
36 , deepConc "conc" 1 benchDummy
37 , deepConc "conc" 1 benchDummy
38 , deepConc "async" 1 benchAsync
39 , deepConc "async" 1 benchAsync
@@ -42,23 +43,6 @@ unliftBenchmark = bgroup "unlift"
43----------------------------------------
44----------------------------------------
45−runShallow :: UnliftStrategy -> Eff '[IOE] a -> IO a
46−runShallow s = runIOE . withUnliftStrategy s
50− -> Eff '[ State (), State (), State (), State (), State ()
51− , State (), State (), State (), State (), State ()
56− . evalState () . evalState () . evalState () . evalState () . evalState ()
57− . evalState () . evalState () . evalState () . evalState () . evalState ()
58− . withUnliftStrategy s
60−----------------------------------------
62shallowConc
46shallowConc
@@ -66,13 +50,13 @@ shallowConc
66 -> Benchmark
50 -> Benchmark
67shallowConc name n f = bgroup name
51shallowConc name n f = bgroup name
68 [ bench "ephemeral/limited" $ nfAppIO
52 [ bench "ephemeral/limited" $ nfAppIO
69− (runShallow (ConcUnlift Ephemeral $ Limited n)) f
53+ (runShallow . withUnliftStrategy (ConcUnlift Ephemeral $ Limited n)) f
70 , bench "ephemeral/unlimited" $ nfAppIO
54 , bench "ephemeral/unlimited" $ nfAppIO
71− (runShallow (ConcUnlift Ephemeral Unlimited)) f
55+ (runShallow . withUnliftStrategy (ConcUnlift Ephemeral Unlimited)) f
72 , bench "persistent/limited" $ nfAppIO
56 , bench "persistent/limited" $ nfAppIO
73− (runShallow (ConcUnlift Persistent $ Limited n)) f
57+ (runShallow . withUnliftStrategy (ConcUnlift Persistent $ Limited n)) f
74 , bench "persistent/unlimited" $ nfAppIO
58 , bench "persistent/unlimited" $ nfAppIO
75− (runShallow (ConcUnlift Persistent Unlimited)) f
59+ (runShallow . withUnliftStrategy (ConcUnlift Persistent Unlimited)) f
@@ -84,13 +68,13 @@ deepConc
84 -> Benchmark
68 -> Benchmark
85deepConc name n f = bgroup name
69deepConc name n f = bgroup name
86 [ bench "ephemeral/limited" $ nfAppIO
70 [ bench "ephemeral/limited" $ nfAppIO
87− (runDeep (ConcUnlift Ephemeral $ Limited n)) f
71+ (runDeep . withUnliftStrategy (ConcUnlift Ephemeral $ Limited n)) f
88 , bench "ephemeral/unlimited" $ nfAppIO
72 , bench "ephemeral/unlimited" $ nfAppIO
89− (runDeep (ConcUnlift Ephemeral Unlimited)) f
73+ (runDeep . withUnliftStrategy (ConcUnlift Ephemeral Unlimited)) f
90 , bench "persistent/limited" $ nfAppIO
74 , bench "persistent/limited" $ nfAppIO
91− (runDeep (ConcUnlift Persistent $ Limited n)) f
75+ (runDeep . withUnliftStrategy (ConcUnlift Persistent $ Limited n)) f
92 , bench "persistent/unlimited" $ nfAppIO
76 , bench "persistent/unlimited" $ nfAppIO
93− (runDeep (ConcUnlift Persistent Unlimited)) f
77+ (runDeep . withUnliftStrategy (ConcUnlift Persistent Unlimited)) f
96----------------------------------------
80----------------------------------------