on master help sign in
Add benchmarks for takeP
15397beAdithya Kumar
benchmark/Streamly/Benchmark/Data/Parser.hs+5
@@ -97,6 +97,10 @@ sliceBeginWith value stream = do
97takeWhile :: MonadCatch m => Int -> SerialT m Int -> m ()
97takeWhile :: MonadCatch m => Int -> SerialT m Int -> m ()
98takeWhile value = IP.parse (PR.takeWhile (<= value) FL.drain)
98takeWhile value = IP.parse (PR.takeWhile (<= value) FL.drain)
99
99
100+{-# INLINE takeP #-}
101+takeP :: MonadCatch m => Int -> SerialT m a -> m ()
102+takeP value = IP.parse (PR.takeP value (PR.fromFold FL.drain))
103+
100{-# INLINE groupBy #-}
104{-# INLINE groupBy #-}
101groupBy :: MonadCatch m => SerialT m Int -> m ()
105groupBy :: MonadCatch m => SerialT m Int -> m ()
102groupBy = IP.parse (PR.groupBy (<=) FL.drain)
106groupBy = IP.parse (PR.groupBy (<=) FL.drain)
@@ -327,6 +331,7 @@ o_1_space_serial value =
327 [ benchIOSink value "takeBetween" $ takeBetween value
331 [ benchIOSink value "takeBetween" $ takeBetween value
328 , benchIOSink value "takeEQ" $ takeEQ value
332 , benchIOSink value "takeEQ" $ takeEQ value
329 , benchIOSink value "takeWhile" $ takeWhile value
333 , benchIOSink value "takeWhile" $ takeWhile value
334+ , benchIOSink value "takeP" $ takeP value
330 , benchIOSink value "drainWhile" $ drainWhile value
335 , benchIOSink value "drainWhile" $ drainWhile value
331 , benchIOSink value "sliceBeginWith" $ sliceBeginWith value
336 , benchIOSink value "sliceBeginWith" $ sliceBeginWith value
332 , benchIOSink value "groupBy" $ groupBy
337 , benchIOSink value "groupBy" $ groupBy
benchmark/Streamly/Benchmark/Data/Parser/ParserD.hs+5
@@ -79,6 +79,10 @@ sliceBeginWith value stream = do
79takeWhile :: MonadThrow m => Int -> SerialT m Int -> m ()
79takeWhile :: MonadThrow m => Int -> SerialT m Int -> m ()
80takeWhile value = IP.parseD (drainWhile (<= value))
80takeWhile value = IP.parseD (drainWhile (<= value))
81
81
82+{-# INLINE takeP #-}
83+takeP :: MonadThrow m => Int -> SerialT m a -> m ()
84+takeP value = IP.parseD (PR.takeP value (PR.fromFold FL.drain))
85+
82{-# INLINE groupBy #-}
86{-# INLINE groupBy #-}
83groupBy :: MonadThrow m => SerialT m Int -> m ()
87groupBy :: MonadThrow m => SerialT m Int -> m ()
84groupBy = IP.parseD (PR.groupBy (<=) FL.drain)
88groupBy = IP.parseD (PR.groupBy (<=) FL.drain)
@@ -289,6 +293,7 @@ moduleName = "Data.Parser.ParserD"
289o_1_space_serial :: Int -> [Benchmark]
293o_1_space_serial :: Int -> [Benchmark]
290o_1_space_serial value =
294o_1_space_serial value =
291 [ benchIOSink value "takeWhile" $ takeWhile value
295 [ benchIOSink value "takeWhile" $ takeWhile value
296+ , benchIOSink value "takeP" $ takeP value
292 , benchIOSink value "sliceBeginWith" $ sliceBeginWith value
297 , benchIOSink value "sliceBeginWith" $ sliceBeginWith value
293 , benchIOSink value "groupBy" $ groupBy
298 , benchIOSink value "groupBy" $ groupBy
294 , benchIOSink value "groupByRolling" $ groupByRolling
299 , benchIOSink value "groupByRolling" $ groupByRolling