on master help sign in
Add benchmark for sepBy1 (#2237)
commit75a174f3ea5f0786c25954e32885777e5c8eb189 authorRanjeet Ranjan <ranjeetr@composewell.com> dateTue 17 Jan 2023, 17:41 (4 years ago) parentab28951
1 file changed+7
benchmark/Streamly/Benchmark/Data/Parser.hs+7
benchmark/Streamly/Benchmark/Data/Parser.hs+7
@@ -194,6 +194,12 @@ sepByWords _ = Stream.parse (wrds even Fold.drain)
194194 where
195195 wrds p = PR.sepBy (PR.takeWhile (not . p) Fold.drain) (PR.dropWhile p)
196196
197+{-# INLINE sepByWords1 #-}
198+sepByWords1 :: Monad m => Int -> Stream m Int -> m (Either ParseError ())
199+sepByWords1 _ = Stream.parse (wrds even Fold.drain)
200+ where
201+ wrds p = PR.sepBy1 (PR.takeWhile (not . p) Fold.drain) (PR.dropWhile p)
202+
197203{-# INLINE deintercalate #-}
198204deintercalate :: Monad m => Int -> Stream m Int -> m (Either ParseError ())
199205deintercalate _ = Stream.parse (partition even)
@@ -467,6 +473,7 @@ o_1_space_serial value =
467473 , benchIOSink value "groupByRolling" $ groupByRolling
468474 , benchIOSink value "wordBy" $ wordBy value
469475 , benchIOSink value "sepBy (words)" $ sepByWords value
476+ , benchIOSink value "sepBy1 (words)" $ sepByWords1 value
470477 , benchIOSink value "deintercalate" $ deintercalate value
471478 , benchIOSink value "splitAp" $ splitAp value
472479 , benchIOSink value "splitApBefore" $ splitApBefore value