on master help sign in
remove the append benchmark
b9e5e42Harendra Kumar
benchmark/Linear.hs+10−18
@@ -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
28
28
29−benchIOAppend :: (NFData b) => String -> (Int -> IO b) -> Benchmark
30−benchIOAppend name f = bench name $ nfIO $ randomRIO (1,1000) >>= f
31−
32{-
29{-
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
48 ]
45 ]
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
68 ]
65 ]
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
94 ]
89 ]
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
104 ]
98 ]
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
116 ]
109 ]
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
129 ]
121 ]
benchmark/LinearOps.hs+2−13
@@ -11,14 +11,13 @@ module LinearOps where
11
11
12import Prelude
12import Prelude
13 (Monad, Int, (+), ($), (.), return, fmap, even, (>), (<=),
13 (Monad, Int, (+), ($), (.), return, fmap, even, (>), (<=),
14− subtract, undefined, Maybe(..), Monoid, foldMap)
14+ subtract, undefined, Maybe(..))
15
15
16import qualified Streamly as S
16import qualified Streamly as S
17import qualified Streamly.Prelude as S
17import qualified Streamly.Prelude as S
18
18
19−value, appendValue, maxValue :: Int
19+value, maxValue :: Int
20value = 100000
20value = 100000
21−appendValue = 100000
22maxValue = value + 1000
21maxValue = value + 1000
23
22
24-------------------------------------------------------------------------------
23-------------------------------------------------------------------------------
@@ -150,16 +149,6 @@ zip src = transform $ (S.zipWith (,) src src)
150zipAsync src = transform $ (S.zipAsyncWith (,) src src)
149zipAsync src = transform $ (S.zipAsyncWith (,) src src)
151concat _n = return ()
150concat _n = return ()
152
151
153−-------------------------------------------------------------------------------
154−-- Append
155−-------------------------------------------------------------------------------
156−
157−{-# INLINE append #-}
158−append
159− :: (Monoid (t m Int), Monad m, Monad (t m))
160− => (t m Int -> S.SerialT m Int) -> Int -> m ()
161−append t n = runStream $ t $ foldMap return [n..n+appendValue]
162−
163-------------------------------------------------------------------------------
152-------------------------------------------------------------------------------
164-- Composition
153-- Composition
165-------------------------------------------------------------------------------
154-------------------------------------------------------------------------------