on master help sign in
Add serial_ benchmark
commite052c821b69f868fdf050d8d2b1c17ade23eea2c authorHarendra Kumar <harendra@composewell.com> dateWed 1 Sep 2021, 20:17 (5 years ago) parent878d734
2 files changed+11−12
benchmark/Streamly/Benchmark/Data/Fold.hs+10−12 src/Streamly/Internal/Data/Fold.hs+1
benchmark/Streamly/Benchmark/Data/Fold.hs+10−12
@@ -98,6 +98,15 @@ splitAllAny value =
9898 (FL.any (> value))
9999 )
100100
101+{-# INLINE serial_ #-}
102+serial_ :: Monad m => Int -> SerialT m Int -> m Bool
103+serial_ value =
104+ IP.fold
105+ (FL.serial_
106+ (FL.all (<= (value `div` 2)))
107+ (FL.any (> value))
108+ )
109+
101110{-# INLINE shortest #-}
102111shortest :: Monad m => SerialT m Int -> m (Either Int Int)
103112shortest = IP.fold (FL.shortest FL.sum FL.length)
@@ -106,18 +115,6 @@ shortest = IP.fold (FL.shortest FL.sum FL.length)
106115longest :: Monad m => SerialT m Int -> m (Either Int Int)
107116longest = IP.fold (FL.longest FL.sum FL.length)
108117
109−{-
110−{-# INLINE split_ #-}
111−split_ :: Monad m
112− => Int -> SerialT m Int -> m ()
113−split_ value =
114− IP.fold
115− (FL.split_
116− (FL.all (<= (value `div` 2)))
117− (FL.any (> value))
118− )
119−-}
120−
121118-------------------------------------------------------------------------------
122119-- Distributing by parallel application
123120-------------------------------------------------------------------------------
@@ -316,6 +313,7 @@ o_1_space_serial_composition value =
316313 [ bgroup
317314 "composition"
318315 [ benchIOSink value "serialWith (all, any)" $ splitAllAny value
316+ , benchIOSink value "serial_ (all, any)" $ serial_ value
319317 , benchIOSink value "tee (all, any)" $ teeAllAny value
320318 , benchIOSink value "many drain (take 1)" many
321319 , benchIOSink value "shortest (sum, length)" shortest
src/Streamly/Internal/Data/Fold.hs+1
@@ -157,6 +157,7 @@ module Streamly.Internal.Data.Fold
157157
158158 -- ** Serial Append
159159 , serialWith
160+ , serial_
160161 -- , tail
161162 -- , init
162163 , splitAt -- spanN