on master help sign in
Add Parser.eqBy benchmarks
e5930e2Adithya Kumar
benchmark/Streamly/Benchmark/Data/Parser.hs+5
@@ -153,6 +153,10 @@ takeFramedByEsc_ _ = Stream.parse parser
153
153
154 parser = PR.takeFramedByEsc_ isEsc isBegin isEnd Fold.drain
154 parser = PR.takeFramedByEsc_ isEsc isBegin isEnd Fold.drain
155
155
156+{-# INLINE eqBy #-}
157+eqBy :: Int -> Stream IO Int -> IO ()
158+eqBy len = Stream.parse (PR.eqBy (==) [1 .. len])
159+
156{-# INLINE takeWhile #-}
160{-# INLINE takeWhile #-}
157takeWhile :: MonadThrow m => Int -> Stream m Int -> m ()
161takeWhile :: MonadThrow m => Int -> Stream m Int -> m ()
158takeWhile value = Stream.parse (PR.takeWhile (<= value) Fold.drain)
162takeWhile value = Stream.parse (PR.takeWhile (<= value) Fold.drain)
@@ -473,6 +477,7 @@ o_1_space_serial value =
473 , benchIOSink value "concatSequence" concatSequence
477 , benchIOSink value "concatSequence" concatSequence
474 , benchIOSink value "parseMany (groupBy (<))" (parseManyGroupBy (<))
478 , benchIOSink value "parseMany (groupBy (<))" (parseManyGroupBy (<))
475 , benchIOSink value "parseMany (groupBy (==))" (parseManyGroupBy (==))
479 , benchIOSink value "parseMany (groupBy (==))" (parseManyGroupBy (==))
480+ , benchIOSink value "eqBy" (eqBy value)
476 ]
481 ]
477
482
478o_1_space_filesystem :: BenchEnv -> [Benchmark]
483o_1_space_filesystem :: BenchEnv -> [Benchmark]
benchmark/Streamly/Benchmark/Data/Parser/ParserD.hs+5
@@ -66,6 +66,10 @@ benchIOSink value name f =
66-- Parsers
66-- Parsers
67-------------------------------------------------------------------------------
67-------------------------------------------------------------------------------
68
68
69+{-# INLINE eqBy #-}
70+eqBy :: Int -> Stream IO Int -> IO ()
71+eqBy len = Stream.parseD (PR.eqBy (==) [1 .. len])
72+
69{-# INLINE drainWhile #-}
73{-# INLINE drainWhile #-}
70drainWhile :: MonadThrow m => (a -> Bool) -> PR.Parser m a ()
74drainWhile :: MonadThrow m => (a -> Bool) -> PR.Parser m a ()
71drainWhile p = PR.takeWhile p Fold.drain
75drainWhile p = PR.takeWhile p Fold.drain
@@ -351,6 +355,7 @@ o_1_space_serial value =
351 , benchIOSink value "longest (all,any)" $ longestAllAny value
355 , benchIOSink value "longest (all,any)" $ longestAllAny value
352 -}
356 -}
353 , benchIOSink value "sequenceParser" sequenceParser
357 , benchIOSink value "sequenceParser" sequenceParser
358+ , benchIOSink value "eqBy" (eqBy value)
354 ]
359 ]
355
360
356o_1_space_serial_spanning :: Int -> [Benchmark]
361o_1_space_serial_spanning :: Int -> [Benchmark]