@@ -25,76 +25,12 @@ rtsOpts exeName benchName0 = unwords [general, exeSpecific, benchSpecific]
2525 | otherwise = " "
2626
2727 exeSpecific
28- | " Prelude.Concurrent" `isSuffixOf` exeName = " -K512K -M384M"
28+ -- | "Data.Stream.ConcurrentEager" `isSuffixOf` exeName = "-K512K -M384M"
29+ -- placeholder to remind usage of exeName
30+ | " abc" `isSuffixOf` exeName = " "
2931 | otherwise = " "
3032
3133 benchSpecific
32- -- GHC-9.6 requires 64M, earlier it was 16M
33- | " Data.Fold/o-n-heap.key-value.toHashMapIO (max buckets) sum" == benchName =
34- " -M64M"
35-
36- -- This is required only for the --long case because we allocate all
37- -- the arrays upfront. depends on the size of the stream.
38- | " Data.Parser/o-1-space" `isPrefixOf` benchName =
39- " -M128M"
40-
41- -----------------------------------------------------------------------
42-
43- | " Prelude.Parallel/o-n-heap.mapping.mapM" == benchName = " -M256M"
44- | " Prelude.Parallel/o-n-heap.monad-outer-product."
45- `isPrefixOf` benchName = " -M256M"
46- | " Prelude.Parallel/o-n-space.monad-outer-product."
47- `isPrefixOf` benchName = " -K2M -M256M"
48- | " Prelude.Rate/o-1-space." `isPrefixOf` benchName = " -K128K"
49- | " Prelude.Rate/o-1-space.asyncly." `isPrefixOf` benchName = " -K128K"
50- | " Prelude.WSerial/o-n-space." `isPrefixOf` benchName = " -K4M"
51- | " Prelude.Async/o-n-space.monad-outer-product." `isPrefixOf` benchName =
52- " -K4M"
53- | " Prelude.Ahead/o-1-space.monad-outer-product." `isPrefixOf` benchName =
54- " -K128K -M32M"
55- | " Prelude.Ahead/o-1-space." `isPrefixOf` benchName = " -K128K"
56- | " Prelude.Ahead/o-n-space.monad-outer-product." `isPrefixOf` benchName =
57- " -K4M"
58- | " Prelude.WAsync/o-n-heap.monad-outer-product.toNull3" == benchName =
59- " -M64M"
60- | " Prelude.WAsync/o-n-space.monad-outer-product." `isPrefixOf` benchName =
61- " -K4M"
62-
63- -----------------------------------------------------------------------
64-
65- | " Data.StreamD/o-n-space.elimination.toList" == benchName =
66- " -K2M"
67- | " Data.StreamK/o-n-space.elimination.toList" == benchName =
68- " -K2M"
69- -- XXX Memory required for these has increased in streamly-core 0.3
70- | " Data.StreamK/o-1-space.list.nested" `isPrefixOf` benchName =
71- " -M640M"
72-
73- -----------------------------------------------------------------------
74-
75- | " Data.Stream/o-1-space.grouping.classifySessionsOf"
76- `isPrefixOf` benchName = " -K512K"
77- | " Data.Stream/o-n-space.foldr.foldrM/"
78- `isPrefixOf` benchName = " -K4M"
79- | " Data.Stream/o-n-space.iterated."
80- `isPrefixOf` benchName = " -K4M"
81-
82- -- GHC-9.6 requires 64M, earlier it was 32M
83- | " Data.Stream/o-n-heap.buffered.showPrec Haskell lists" == benchName =
84- " -M64M"
85- -- GHC-9.6 requires 64M, earlier it was 32M
86- | " Data.Stream/o-n-heap.buffered.readsPrec pure streams" == benchName =
87- " -M64M"
88-
89- | " Data.Stream.ConcurrentEager/o-n-heap.monad-outer-product.toNullAp"
90- `isPrefixOf` benchName = " -M1500M"
91- | " Data.Stream.ConcurrentEager/o-1-space."
92- `isPrefixOf` benchName = " -M128M"
93-
94- | " Data.Stream.ConcurrentOrdered/o-1-space.concat-foldable.foldMapWith"
95- `isPrefixOf` benchName = " -K128K"
96-
97- ----------------------------------------------------------------------
9834
9935 | " Data.Array" `isPrefixOf` benchName
10036 && " /o-1-space.generation.read" `isSuffixOf` benchName = " -M32M"
@@ -110,6 +46,20 @@ rtsOpts exeName benchName0 = unwords [general, exeSpecific, benchSpecific]
11046 -- chunked stream benchmarks in the stream module.
11147 | " Data.Array.Stream/o-1-space"
11248 `isPrefixOf` benchName = " -K4M -M512M"
49+
50+ ----------------------------------------------------------------------
51+
52+ -- GHC-9.6 requires 64M, earlier it was 16M
53+ | " Data.Fold/o-n-heap.key-value.toHashMapIO (max buckets) sum"
54+ == benchName = " -M64M"
55+
56+ ----------------------------------------------------------------------
57+
58+ -- This is required only for the --long case because we allocate all
59+ -- the arrays upfront. depends on the size of the stream.
60+ | " Data.Parser/o-1-space"
61+ `isPrefixOf` benchName = " -M128M"
62+
11363 -- XXX Takes up to 160MB heap for --long, we use chunked stream for
11464 -- this, so the reason may be related to chunked streams.
11565 | " Data.ParserK/o-1-space"
@@ -119,12 +69,50 @@ rtsOpts exeName benchName0 = unwords [general, exeSpecific, benchSpecific]
11969 | " Data.ParserK.Chunked.Generic/o-1-space"
12070 `isPrefixOf` benchName = " -K4M -M256M"
12171
122- {-
123- -- XXX This options does not seem to take effect. "ParserK.Chunked"
124- -- needs more memory to work with --long option
125- | "Data.ParserK.Chunked.Generic/o-1-space"
126- `isPrefixOf` benchName = "-K4M -M256M"
127- -}
72+ -----------------------------------------------------------------------
73+
74+ | " Data.Stream/o-1-space.grouping.classifySessionsOf"
75+ `isPrefixOf` benchName = " -K512K"
76+
77+ -- GHC-9.6 requires 64M, earlier it was 32M
78+ | " Data.Stream/o-n-heap.buffered.showPrec Haskell lists"
79+ == benchName = " -M64M"
80+ -- GHC-9.6 requires 64M, earlier it was 32M
81+ | " Data.Stream/o-n-heap.buffered.readsPrec pure streams"
82+ == benchName = " -M64M"
83+
84+ | " Data.Stream/o-n-space.foldr.foldrM/"
85+ `isPrefixOf` benchName = " -K4M"
86+ | " Data.Stream/o-n-space.iterated."
87+ `isPrefixOf` benchName = " -K4M"
88+ | " Data.Stream/o-n-space.toList.toList"
89+ `isPrefixOf` benchName = " -K2M"
90+ | " Data.Stream/o-n-space.Monad.toList"
91+ `isPrefixOf` benchName = " -K2M"
92+
93+ -----------------------------------------------------------------------
94+
95+ | " Data.StreamK/o-n-space.elimination.toList"
96+ == benchName = " -K2M"
97+ -- XXX Memory required for these has increased in streamly-core 0.3
98+ | " Data.StreamK/o-1-space.list.nested"
99+ `isPrefixOf` benchName = " -M500M"
100+
101+ ----------------------------------------------------------------------
102+ -- Concurrent streams
103+ ----------------------------------------------------------------------
104+
105+ | " Data.Stream.ConcurrentInterleaved/o-n-heap.cross-product.monad3"
106+ `isPrefixOf` benchName = " -M128M"
107+
108+ | " Data.Stream.ConcurrentEager/o-1-space."
109+ `isPrefixOf` benchName = " -M128M"
110+
111+ | " Data.Stream.ConcurrentEager/o-n-heap.cross-product"
112+ `isPrefixOf` benchName = " -M500M"
113+
114+ | " Data.Stream.ConcurrentOrdered/o-1-space.concat-foldable.foldMapWith"
115+ `isPrefixOf` benchName = " -K128K"
128116
129117 -----------------------------------------------------------------------
130118
@@ -141,38 +129,15 @@ speedOpts exeName benchName0 = exeSpecific <|> benchSpecific
141129 -- slowestOf _ Quicker = Quicker
142130 -- slowestOf _ _ = SuperQuick
143131
144- -- Drop All.
132+ -- Drop the " All." prefix
145133 benchName = drop 4 benchName0
146134 exeSpecific
147- | " Prelude.Concurrent " == exeName = Just SuperQuick
148- | " Prelude .Rate" == exeName = Just SuperQuick
149- | " Prelude .Adaptive" == exeName = Just SuperQuick
135+ | " Data.Stream.ConcurrentThreadHeavy " == exeName = Just SuperQuick
136+ | " Data.Stream .Rate" == exeName = Just SuperQuick
137+ | " Data.Stream .Adaptive" == exeName = Just SuperQuick
150138 | otherwise = Nothing
151139 benchSpecific
152- | " Prelude.Parallel/o-n-heap.mapping.mapM" == benchName =
153- Just SuperQuick
154- | " Prelude.Parallel/o-n-heap.monad-outer-product."
155- `isPrefixOf` benchName = Just SuperQuick
156- | " Prelude.Parallel.o-n-space.monad-outer-product."
157- `isPrefixOf` benchName = Just SuperQuick
158- | " Prelude.Parallel/o-n-heap.generation." `isPrefixOf` benchName =
159- Just Quicker
160- | " Prelude.Parallel/o-n-heap.mapping." `isPrefixOf` benchName =
161- Just Quicker
162- | " Prelude.Parallel/o-n-heap.concat-foldable." `isPrefixOf` benchName =
163- Just Quicker
164- | " Prelude.Async/o-1-space.monad-outer-product." `isPrefixOf` benchName =
165- Just Quicker
166- | " Prelude.Async/o-n-space.monad-outer-product." `isPrefixOf` benchName =
167- Just Quicker
168- | " Prelude.Ahead/o-1-space.monad-outer-product." `isPrefixOf` benchName =
169- Just Quicker
170- | " Prelude.Ahead/o-n-space.monad-outer-product." `isPrefixOf` benchName =
171- Just Quicker
172- | " Prelude.WAsync/o-n-heap.monad-outer-product." `isPrefixOf` benchName =
173- Just Quicker
174- | " Prelude.WAsync/o-n-space.monad-outer-product." `isPrefixOf` benchName =
175- Just Quicker
140+ | " -maxBuffer-1" `isInfixOf` benchName = Just SuperQuick
176141 | " FileSystem.Handle." `isPrefixOf` benchName = Just Quicker
177142 | otherwise = Nothing
178143
0 commit comments