on master help sign in
Add parseMany groupBy benchmarks
commit4feef0a3b4aa4013294dbaadf6c12b0153b2ffa8 authorAdithya Kumar <adithya@composewell.com> dateThu 15 Sep 2022, 15:48 (4 years ago) parentd33bb11
1 file changed+7
benchmark/Streamly/Benchmark/Data/Parser.hs+7
benchmark/Streamly/Benchmark/Data/Parser.hs+7
@@ -421,6 +421,11 @@ parseBreak s = do
421421concatSequence :: MonadThrow m => Stream m Int -> m ()
422422concatSequence = Stream.parse $ PR.concatSequence Fold.drain $ Stream.repeat PR.one
423423
424+{-# INLINE parseManyGroupBy #-}
425+parseManyGroupBy :: MonadThrow m => (Int -> Int -> Bool) -> Stream m Int -> m ()
426+parseManyGroupBy cmp =
427+ Stream.fold Fold.drain . Stream.parseMany (PR.groupBy cmp Fold.drain)
428+
424429-------------------------------------------------------------------------------
425430-- Benchmarks
426431-------------------------------------------------------------------------------
@@ -466,6 +471,8 @@ o_1_space_serial value =
466471 , benchIOSink value "parseIterate (take 1)" (parseIterate 1)
467472 , benchIOSink value "parseIterate (take all)" (parseIterate value)
468473 , benchIOSink value "concatSequence" concatSequence
474+ , benchIOSink value "parseMany (groupBy (<))" (parseManyGroupBy (<))
475+ , benchIOSink value "parseMany (groupBy (==))" (parseManyGroupBy (==))
469476 ]
470477
471478o_1_space_filesystem :: BenchEnv -> [Benchmark]