on master help sign in
Add takeBetween to ParserD benchmarks
commit3dd9c8d9f6b1323887dfe960a9cfe9c8673a4809 authorHarendra Kumar <harendra@composewell.com> dateTue 25 Jan 2022, 13:25 (5 years ago) parent69785a3
1 file changed+5
benchmark/Streamly/Benchmark/Data/Parser/ParserD.hs+5
benchmark/Streamly/Benchmark/Data/Parser/ParserD.hs+5
@@ -94,6 +94,10 @@ takeWhile value = IP.parseD (drainWhile (<= value))
9494takeP :: MonadThrow m => Int -> SerialT m a -> m ()
9595takeP value = IP.parseD (PR.takeP value (PR.fromFold FL.drain))
9696
97+{-# INLINE takeBetween #-}
98+takeBetween :: MonadCatch m => Int -> SerialT m a -> m ()
99+takeBetween value = IP.parseD (PR.takeBetween 0 value FL.drain)
100+
97101{-# INLINE groupBy #-}
98102groupBy :: MonadThrow m => SerialT m Int -> m ()
99103groupBy = IP.parseD (PR.groupBy (<=) FL.drain)
@@ -318,6 +322,7 @@ o_1_space_serial :: Int -> [Benchmark]
318322o_1_space_serial value =
319323 [ benchIOSink value "takeWhile" $ takeWhile value
320324 , benchIOSink value "takeP" $ takeP value
325+ , benchIOSink value "takeBetween" $ takeBetween value
321326 , benchIOSink value "sliceBeginWith" $ sliceBeginWith value
322327 , benchIOSink value "groupBy" $ groupBy
323328 , benchIOSink value "groupByRolling" $ groupByRolling