@@ -17,6 +17,8 @@ import Gauge
18import Prelude hiding (concat)
18import Prelude hiding (concat)
20+import qualified Prelude
20import Streamly.Benchmark.Common
22import Streamly.Benchmark.Common
21import Streamly.Benchmark.Data.NestedUnfoldOps
23import Streamly.Benchmark.Data.NestedUnfoldOps
@@ -25,37 +27,31 @@ benchIO :: (NFData b) => String -> (Int -> IO b) -> Benchmark
25benchIO name f = bench name $ nfIO $ randomRIO (1,1) >>= f
27benchIO name f = bench name $ nfIO $ randomRIO (1,1) >>= f
27-------------------------------------------------------------------------------
29-------------------------------------------------------------------------------
28−-- Stream folds
30+-- Outer product
29-------------------------------------------------------------------------------
31-------------------------------------------------------------------------------
31−o_1_space_serial_outerProductUnfolds :: Int -> [Benchmark]
33+moduleName :: String
32−o_1_space_serial_outerProductUnfolds value =
34+moduleName = "Data.Unfold"
36− "outer-product-unfolds"
37− [ benchIO "toNull" $ toNull value
38− , benchIO "toNull3" $ toNull3 value
39− , benchIO "concat" $ concat value
40− , benchIO "filterAllOut" $ filterAllOut value
41− , benchIO "filterAllIn" $ filterAllIn value
42− , benchIO "filterSome" $ filterSome value
43− , benchIO "breakAfterSome" $ breakAfterSome value
36+o_1_space_serial :: Int -> [Benchmark]
37+o_1_space_serial value =
38+ [ bgroup "outer-product"
39+ [ benchIO "toNull" $ toNull value
40+ , benchIO "toNull3" $ toNull3 value
41+ , benchIO "concat" $ concat value
42+ , benchIO "filterAllOut" $ filterAllOut value
43+ , benchIO "filterAllIn" $ filterAllIn value
44+ , benchIO "filterSome" $ filterSome value
45+ , benchIO "breakAfterSome" $ breakAfterSome value
49−o_n_space_serial_outerProductUnfolds :: Int -> [Benchmark]
49+o_n_space_serial :: Int -> [Benchmark]
50−o_n_space_serial_outerProductUnfolds value =
50+o_n_space_serial value =
54− "outer-product-unfolds"
51+ [ bgroup "outer-product"
55− [ benchIO "toList" $ toList value
52+ [ benchIO "toList" $ toList value
56− , benchIO "toListSome" $ toListSome value
53+ , benchIO "toListSome" $ toListSome value
61-------------------------------------------------------------------------------
57-------------------------------------------------------------------------------
@@ -64,14 +60,14 @@ o_n_space_serial_outerProductUnfolds value =
65main :: IO ()
61main :: IO ()
67− (value, cfg, benches) <- parseCLIOpts defaultStreamSize
63+ (value, cfg, benches) <- parseCLIOpts defaultStreamSize
68− value `seq` runMode (mode cfg) cfg benches (allBenchmarks value)
64+ value `seq` runMode (mode cfg) cfg benches (allBenchmarks value)
70 allBenchmarks value =
68 allBenchmarks value =
71− [ bgroup
69+ [ bgroup (o_1_space_prefix moduleName) $ Prelude.concat
72− "o-1-space"
70+ [o_1_space_serial value]
73− [bgroup "unfold" (o_1_space_serial_outerProductUnfolds value)]
71+ , bgroup (o_n_space_prefix moduleName) $ Prelude.concat
74− , bgroup
72+ [o_n_space_serial value]
76− [bgroup "unfold" (o_n_space_serial_outerProductUnfolds value)]