@@ -177,9 +177,11 @@ main = hspec $ do
177177 forM_ rates (\r -> measureRate "asyncly" fromAsync r 0 0 range)
178178
179179 -- XXX try staggering the dispatches to achieve higher rates
180− let rates = [1, 10, 100, 1000
181−#ifndef __GHCJS__
182− , 10000, 25000
180+ -- Producer delay causes a lot of threads to be created, consuming large
181+ -- amounts of memory at higher rates.
182+ let rates = [1, 10, 100
183+#if !defined(__GHCJS__) && defined USE_LARGE_MEMORY
184+ 1000, 10000, 25000
183185#endif
184186 ]
185187 in describe "asyncly no consumer delay and 1 sec producer delay" $
@@ -187,12 +189,12 @@ main = hspec $ do
187189
188190 -- At lower rates (1/10) this is likely to vary quite a bit depending on
189191 -- the spread of random producer latencies generated.
190− let rates = [1, 10, 100, 1000
191−#ifndef __GHCJS__
192− , 10000, 25000
192+ let rates = [1, 10, 100
193+#if !defined(__GHCJS__) && defined USE_LARGE_MEMORY
194+ , 1000, 10000, 25000
193195#endif
194196 ]
195− in describe "asyncly no consumer delay and variable producer delay" $
197+ in describe "asyncly, no consumer delay and variable producer delay" $
196198 forM_ rates $ \r ->
197199 measureRateVariable "asyncly" fromAsync r 0 (0.1, 3) range
198200
@@ -201,15 +203,15 @@ main = hspec $ do
201203 , 100000, 1000000
202204#endif
203205 ]
204− in describe "fromWAsync no consumer delay no producer delay" $
206+ in describe "fromWAsync, no consumer delay no producer delay" $
205207 forM_ rates (\r -> measureRate "fromWAsync" fromWAsync r 0 0 range)
206208
207209 let rates = [1, 10, 100, 1000
208−#ifndef __GHCJS__
210+#if !defined(__GHCJS__) && defined USE_LARGE_MEMORY
209211 , 10000, 25000
210212#endif
211213 ]
212− in describe "fromWAsync no consumer delay and 1 sec producer delay" $
214+ in describe "fromWAsync, no consumer delay and 1 sec producer delay" $
213215 forM_ rates (\r -> measureRate "fromWAsync" fromWAsync r 0 1 range)
214216
215217 let rates = [1, 10, 100, 1000, 10000
@@ -217,20 +219,20 @@ main = hspec $ do
217219 , 100000, 1000000
218220#endif
219221 ]
220− in describe "aheadly no consumer delay no producer delay" $
222+ in describe "aheadly, no consumer delay no producer delay" $
221223 forM_ rates (\r -> measureRate "aheadly" fromAhead r 0 0 range)
222224
223225 -- XXX after the change to stop workers when the heap is clearing
224226 -- thi does not work well at a 25000 ops per second, need to fix.
225227 let rates = [1, 10, 100, 1000
226−#ifndef __GHCJS__
228+#if !defined(__GHCJS__) && defined USE_LARGE_MEMORY
227229 , 10000, 12500
228230#endif
229231 ]
230− in describe "aheadly no consumer delay and 1 sec producer delay" $
232+ in describe "aheadly, no consumer delay and 1 sec producer delay" $
231233 forM_ rates (\r -> measureRate "aheadly" fromAhead r 0 1 range)
232234
233− describe "asyncly with 1 sec producer delay and some consumer delay" $ do
235+ describe "asyncly, some consumer delay and 1 sec producer delay" $ do
234236 -- ideally it should take 10 x 1 + 1 seconds
235237 forM_ [1] (\r -> measureRate "asyncly" fromAsync r 1 1 (11, 16))
236238 -- ideally it should take 10 x 2 + 1 seconds
@@ -238,7 +240,7 @@ main = hspec $ do
238240 -- ideally it should take 10 x 3 + 1 seconds
239241 forM_ [1] (\r -> measureRate "asyncly" fromAsync r 3 1 (31, 33))
240242
241− describe "aheadly with 1 sec producer delay and some consumer delay" $ do
243+ describe "aheadly, some consumer delay and 1 sec producer delay" $ do
242244 forM_ [1] (\r -> measureRate "aheadly" fromAhead r 1 1 (11, 16))
243245 forM_ [1] (\r -> measureRate "aheadly" fromAhead r 2 1 (21, 23))
244246 forM_ [1] (\r -> measureRate "aheadly" fromAhead r 3 1 (31, 33))