on master help sign in
Add Parser.eqBy benchmarks
commite5930e2d5f179fb61ff09d66c763d609d6e93248 authorAdithya Kumar <adithya@composewell.com> dateTue 4 Oct 2022, 17:58 (4 years ago) parent05eb489
2 files changed+10
benchmark/Streamly/Benchmark/Data/Parser.hs+5 benchmark/Streamly/Benchmark/Data/Parser/ParserD.hs+5
benchmark/Streamly/Benchmark/Data/Parser.hs+5
@@ -153,6 +153,10 @@ takeFramedByEsc_ _ = Stream.parse parser
153153
154154 parser = PR.takeFramedByEsc_ isEsc isBegin isEnd Fold.drain
155155
156+{-# INLINE eqBy #-}
157+eqBy :: Int -> Stream IO Int -> IO ()
158+eqBy len = Stream.parse (PR.eqBy (==) [1 .. len])
159+
156160{-# INLINE takeWhile #-}
157161takeWhile :: MonadThrow m => Int -> Stream m Int -> m ()
158162takeWhile value = Stream.parse (PR.takeWhile (<= value) Fold.drain)
@@ -473,6 +477,7 @@ o_1_space_serial value =
473477 , benchIOSink value "concatSequence" concatSequence
474478 , benchIOSink value "parseMany (groupBy (<))" (parseManyGroupBy (<))
475479 , benchIOSink value "parseMany (groupBy (==))" (parseManyGroupBy (==))
480+ , benchIOSink value "eqBy" (eqBy value)
476481 ]
477482
478483o_1_space_filesystem :: BenchEnv -> [Benchmark]
benchmark/Streamly/Benchmark/Data/Parser/ParserD.hs+5
@@ -66,6 +66,10 @@ benchIOSink value name f =
6666-- Parsers
6767-------------------------------------------------------------------------------
6868
69+{-# INLINE eqBy #-}
70+eqBy :: Int -> Stream IO Int -> IO ()
71+eqBy len = Stream.parseD (PR.eqBy (==) [1 .. len])
72+
6973{-# INLINE drainWhile #-}
7074drainWhile :: MonadThrow m => (a -> Bool) -> PR.Parser m a ()
7175drainWhile p = PR.takeWhile p Fold.drain
@@ -351,6 +355,7 @@ o_1_space_serial value =
351355 , benchIOSink value "longest (all,any)" $ longestAllAny value
352356 -}
353357 , benchIOSink value "sequenceParser" sequenceParser
358+ , benchIOSink value "eqBy" (eqBy value)
354359 ]
355360
356361o_1_space_serial_spanning :: Int -> [Benchmark]