on master help sign in
Add bench mark
b926110Ranjeet Kumar Ranjan
benchmark/Streamly/Benchmark/Data/Parser/ParserD.hs+11
@@ -216,6 +216,13 @@ parseManyGroupsRolling :: MonadThrow m => Bool -> SerialT m Int -> m ()
216parseManyGroupsRolling b =
216parseManyGroupsRolling b =
217 IP.drain . IP.parseManyD (PR.groupByRolling (\_ _ -> b) FL.drain)
217 IP.drain . IP.parseManyD (PR.groupByRolling (\_ _ -> b) FL.drain)
218
218
219+{-# INLINE parseManyGroupsRollingEither #-}
220+parseManyGroupsRollingEither :: (MonadThrow m, MonadCatch m) =>
221+ Bool -> SerialT m Int -> m ()
222+parseManyGroupsRollingEither b =
223+ IP.drain .
224+ IP.parseManyD (PR.groupByRollingEither (\_ _ -> b) FL.drain FL.drain)
225+
219-------------------------------------------------------------------------------
226-------------------------------------------------------------------------------
220-- Parsing with unfolds
227-- Parsing with unfolds
221-------------------------------------------------------------------------------
228-------------------------------------------------------------------------------
@@ -333,6 +340,10 @@ o_1_space_serial_nested value =
333 , benchIOSink value "parseMany groupBy (1 group)" $ (parseManyGroups True)
340 , benchIOSink value "parseMany groupBy (1 group)" $ (parseManyGroups True)
334 , benchIOSink value "parseMany groupRollingBy (1 group)"
341 , benchIOSink value "parseMany groupRollingBy (1 group)"
335 $ (parseManyGroupsRolling True)
342 $ (parseManyGroupsRolling True)
343+ , benchIOSink value "parseMany groupRollingByEither (1 group)"
344+ $ (parseManyGroupsRollingEither True)
345+ , benchIOSink value "parseMany groupRollingByEither (bound groups)"
346+ $ (parseManyGroupsRollingEither False)
336 ]
347 ]
337
348
338o_1_space_serial_unfold :: Int -> [Array.Array Int] -> [Benchmark]
349o_1_space_serial_unfold :: Int -> [Array.Array Int] -> [Benchmark]