@@ -26,9 +26,6 @@ benchSrcIO
26benchSrcIO t name f
26benchSrcIO t name f
27 = bench name $ nfIO $ randomRIO (1,1000) >>= Ops.toNull t . f
27 = bench name $ nfIO $ randomRIO (1,1000) >>= Ops.toNull t . f
29−benchIOAppend :: (NFData b) => String -> (Int -> IO b) -> Benchmark
30−benchIOAppend name f = bench name $ nfIO $ randomRIO (1,1000) >>= f
33_benchId :: NFData b => String -> (Ops.Stream m Int -> Identity b) -> Benchmark
30_benchId :: NFData b => String -> (Ops.Stream m Int -> Identity b) -> Benchmark
34_benchId name f = bench name $ nf (runIdentity . f) (Ops.source 10)
31_benchId name f = bench name $ nf (runIdentity . f) (Ops.source 10)
@@ -40,10 +37,10 @@ main = do
40 [ bgroup "serially"
37 [ bgroup "serially"
41 [ bgroup "generation"
38 [ bgroup "generation"
42 [ benchSrcIO serially "unfoldr" $ Ops.sourceUnfoldr
39 [ benchSrcIO serially "unfoldr" $ Ops.sourceUnfoldr
43− , benchSrcIO serially "fromFoldable" Ops.sourceFromFoldable
44− , benchSrcIO serially "foldMapWith" Ops.sourceFoldMapWith
45 , benchSrcIO serially "unfoldrM" Ops.sourceUnfoldrM
40 , benchSrcIO serially "unfoldrM" Ops.sourceUnfoldrM
41+ , benchSrcIO serially "fromFoldable" Ops.sourceFromFoldable
46 , benchSrcIO serially "fromFoldableM" Ops.sourceFromFoldableM
42 , benchSrcIO serially "fromFoldableM" Ops.sourceFromFoldableM
43+ , benchSrcIO serially "foldMapWith" Ops.sourceFoldMapWith
47 , benchSrcIO serially "foldMapWithM" Ops.sourceFoldMapWithM
44 , benchSrcIO serially "foldMapWithM" Ops.sourceFoldMapWithM
49 , bgroup "elimination"
46 , bgroup "elimination"
@@ -66,7 +63,6 @@ main = do
66 , benchIO "drop-all" Ops.dropAll
63 , benchIO "drop-all" Ops.dropAll
67 , benchIO "dropWhile-true" Ops.dropWhileTrue
64 , benchIO "dropWhile-true" Ops.dropWhileTrue
69− , benchIOAppend "append" $ Ops.append serially
70 , benchIO "zip" $ Ops.zip
66 , benchIO "zip" $ Ops.zip
71 , bgroup "compose"
67 , bgroup "compose"
72 [ benchIO "mapM" Ops.composeMapM
68 [ benchIO "mapM" Ops.composeMapM
@@ -85,45 +81,41 @@ main = do
85 , bgroup "asyncly"
81 , bgroup "asyncly"
86 [ -- benchIO "unfoldr" $ Ops.toNull asyncly
82 [ -- benchIO "unfoldr" $ Ops.toNull asyncly
87 -- , benchSrcIO asyncly "fromFoldable" Ops.sourceFromFoldable
83 -- , benchSrcIO asyncly "fromFoldable" Ops.sourceFromFoldable
88− benchSrcIO asyncly "foldMapWith" Ops.sourceFoldMapWith
89− , benchSrcIO asyncly "unfoldrM" Ops.sourceUnfoldrM
84+ benchSrcIO asyncly "unfoldrM" Ops.sourceUnfoldrM
90 , benchSrcIO asyncly "fromFoldableM" Ops.sourceFromFoldableM
85 , benchSrcIO asyncly "fromFoldableM" Ops.sourceFromFoldableM
86+ , benchSrcIO asyncly "foldMapWith" Ops.sourceFoldMapWith
91 , benchSrcIO asyncly "foldMapWithM" Ops.sourceFoldMapWithM
87 , benchSrcIO asyncly "foldMapWithM" Ops.sourceFoldMapWithM
92 , benchIO "mapM" $ Ops.mapM asyncly
88 , benchIO "mapM" $ Ops.mapM asyncly
93− , benchIOAppend "append" $ Ops.append asyncly
95 , bgroup "wAsyncly"
90 , bgroup "wAsyncly"
96 [ -- benchIO "unfoldr" $ Ops.toNull wAsyncly
91 [ -- benchIO "unfoldr" $ Ops.toNull wAsyncly
97 -- , benchSrcIO wAsyncly "fromFoldable" Ops.sourceFromFoldable
92 -- , benchSrcIO wAsyncly "fromFoldable" Ops.sourceFromFoldable
98− benchSrcIO wAsyncly "foldMapWith" Ops.sourceFoldMapWith
99− , benchSrcIO wAsyncly "unfoldrM" Ops.sourceUnfoldrM
93+ benchSrcIO wAsyncly "unfoldrM" Ops.sourceUnfoldrM
100 , benchSrcIO wAsyncly "fromFoldableM" Ops.sourceFromFoldableM
94 , benchSrcIO wAsyncly "fromFoldableM" Ops.sourceFromFoldableM
95+ , benchSrcIO wAsyncly "foldMapWith" Ops.sourceFoldMapWith
101 , benchSrcIO wAsyncly "foldMapWithM" Ops.sourceFoldMapWithM
96 , benchSrcIO wAsyncly "foldMapWithM" Ops.sourceFoldMapWithM
102 , benchIO "mapM" $ Ops.mapM wAsyncly
97 , benchIO "mapM" $ Ops.mapM wAsyncly
103− , benchIOAppend "append" $ Ops.append wAsyncly
105 -- unfoldr and fromFoldable are always serial and thereofore the same for
99 -- unfoldr and fromFoldable are always serial and thereofore the same for
106 -- all stream types.
100 -- all stream types.
107 , bgroup "aheadly"
101 , bgroup "aheadly"
108 [ -- benchIO "unfoldr" $ Ops.toNull aheadly
102 [ -- benchIO "unfoldr" $ Ops.toNull aheadly
109 -- , benchSrcIO aheadly "fromFoldable" Ops.sourceFromFoldable
103 -- , benchSrcIO aheadly "fromFoldable" Ops.sourceFromFoldable
110− benchSrcIO aheadly "foldMapWith" Ops.sourceFoldMapWith
111− , benchSrcIO aheadly "unfoldrM" Ops.sourceUnfoldrM
104+ benchSrcIO aheadly "unfoldrM" Ops.sourceUnfoldrM
112 , benchSrcIO aheadly "fromFoldableM" Ops.sourceFromFoldableM
105 , benchSrcIO aheadly "fromFoldableM" Ops.sourceFromFoldableM
106+ , benchSrcIO aheadly "foldMapWith" Ops.sourceFoldMapWith
113 , benchSrcIO aheadly "foldMapWithM" Ops.sourceFoldMapWithM
107 , benchSrcIO aheadly "foldMapWithM" Ops.sourceFoldMapWithM
114 , benchIO "mapM" $ Ops.mapM aheadly
108 , benchIO "mapM" $ Ops.mapM aheadly
115− , benchIOAppend "append" $ Ops.append aheadly
117 -- XXX need to use smaller streams to finish in reasonable time
110 -- XXX need to use smaller streams to finish in reasonable time
118 , bgroup "parallely"
111 , bgroup "parallely"
119 [ --benchIO "unfoldr" $ Ops.toNull parallely
112 [ --benchIO "unfoldr" $ Ops.toNull parallely
120 --, benchSrcIO parallely "fromFoldable" Ops.sourceFromFoldable
113 --, benchSrcIO parallely "fromFoldable" Ops.sourceFromFoldable
121− benchSrcIO parallely "foldMapWith" Ops.sourceFoldMapWith
122− , benchSrcIO parallely "unfoldrM" Ops.sourceUnfoldrM
114+ benchSrcIO parallely "unfoldrM" Ops.sourceUnfoldrM
123 , benchSrcIO parallely "fromFoldableM" Ops.sourceFromFoldableM
115 , benchSrcIO parallely "fromFoldableM" Ops.sourceFromFoldableM
116+ , benchSrcIO parallely "foldMapWith" Ops.sourceFoldMapWith
124 , benchSrcIO parallely "foldMapWithM" Ops.sourceFoldMapWithM
117 , benchSrcIO parallely "foldMapWithM" Ops.sourceFoldMapWithM
125 , benchIO "mapM" $ Ops.mapM parallely
118 , benchIO "mapM" $ Ops.mapM parallely
126− , benchIOAppend "append" $ Ops.append parallely
127 -- Zip has only one parallel flavor
119 -- Zip has only one parallel flavor
128 , benchIO "zip" $ Ops.zipAsync
120 , benchIO "zip" $ Ops.zipAsync