@@ -121,6 +121,7 @@ main :: IO ()
121
121
main = do
122
122
defaultMain
123
123
[
124
+ #ifdef BENCH_containers_Map
124
125
env setupEnv $ \ ~ (Env {.. }) ->
125
126
-- * Comparison to other data structures
126
127
-- ** Map
@@ -161,10 +162,12 @@ main = do
161
162
[ bench " String" $ whnf (M. isSubmapOf mSubset) m
162
163
, bench " ByteString" $ whnf (M. isSubmapOf mbsSubset) mbs
163
164
]
164
- ]
165
+ ],
166
+ #endif
165
167
168
+ #ifdef BENCH_hashmap_Map
166
169
-- ** Map from the hashmap package
167
- , env setupEnv $ \ ~ (Env {.. }) ->
170
+ env setupEnv $ \ ~ (Env {.. }) ->
168
171
bgroup " hashmap/Map"
169
172
[ bgroup " lookup"
170
173
[ bench " String" $ whnf (lookupIHM keys) ihm
@@ -202,14 +205,12 @@ main = do
202
205
[ bench " String" $ whnf (IHM. isSubmapOf ihmSubset) ihm
203
206
, bench " ByteString" $ whnf (IHM. isSubmapOf ihmbsSubset) ihmbs
204
207
]
205
- , bgroup " hash"
206
- [ bench " String" $ whnf hash hm
207
- , bench " ByteString" $ whnf hash hmbs
208
- ]
209
- ]
208
+ ],
209
+ #endif
210
210
211
+ #ifdef BENCH_containers_IntMap
211
212
-- ** IntMap
212
- , env setupEnv $ \ ~ (Env {.. }) ->
213
+ env setupEnv $ \ ~ (Env {.. }) ->
213
214
bgroup " IntMap"
214
215
[ bench " lookup" $ whnf (lookupIM keysI) im
215
216
, bench " lookup-miss" $ whnf (lookupIM keysI') im
@@ -220,9 +221,10 @@ main = do
220
221
, bench " size" $ whnf IM. size im
221
222
, bench " fromList" $ whnf IM. fromList elemsI
222
223
, bench " isSubmapOf" $ whnf (IM. isSubmapOf imSubset) im
223
- ]
224
+ ],
225
+ #endif
224
226
225
- , env setupEnv $ \ ~ (Env {.. }) ->
227
+ env setupEnv $ \ ~ (Env {.. }) ->
226
228
bgroup " HashMap"
227
229
[ -- * Basic interface
228
230
bgroup " lookup"
@@ -357,6 +359,11 @@ main = do
357
359
, bench " Int" $ whnf (HM. fromListWith (+) ) elemsDupI
358
360
]
359
361
]
362
+ -- Hashable instance
363
+ , bgroup " hash"
364
+ [ bench " String" $ whnf hash hm
365
+ , bench " ByteString" $ whnf hash hmbs
366
+ ]
360
367
]
361
368
]
362
369
@@ -438,6 +445,7 @@ isSubmapOfNaive m1 m2 = and [ Just v1 == HM.lookup k1 m2 | (k1,v1) <- HM.toList
438
445
{-# SPECIALIZE isSubmapOfNaive :: HM.HashMap String Int -> HM.HashMap String Int -> Bool #-}
439
446
{-# SPECIALIZE isSubmapOfNaive :: HM.HashMap BS.ByteString Int -> HM.HashMap BS.ByteString Int -> Bool #-}
440
447
448
+ #ifdef BENCH_containers_Map
441
449
------------------------------------------------------------------------
442
450
-- * Map
443
451
@@ -458,7 +466,9 @@ deleteM xs m0 = foldl' (\m k -> M.delete k m) m0 xs
458
466
{-# SPECIALIZE deleteM :: [String] -> M.Map String Int -> M.Map String Int #-}
459
467
{-# SPECIALIZE deleteM :: [BS.ByteString] -> M.Map BS.ByteString Int
460
468
-> M.Map BS.ByteString Int #-}
469
+ #endif
461
470
471
+ #ifdef BENCH_hashmap_Map
462
472
------------------------------------------------------------------------
463
473
-- * Map from the hashmap package
464
474
@@ -482,7 +492,9 @@ deleteIHM xs m0 = foldl' (\m k -> IHM.delete k m) m0 xs
482
492
-> IHM.Map String Int #-}
483
493
{-# SPECIALIZE deleteIHM :: [BS.ByteString] -> IHM.Map BS.ByteString Int
484
494
-> IHM.Map BS.ByteString Int #-}
495
+ #endif
485
496
497
+ #ifdef BENCH_containers_IntMap
486
498
------------------------------------------------------------------------
487
499
-- * IntMap
488
500
@@ -494,3 +506,4 @@ insertIM xs m0 = foldl' (\m (k, v) -> IM.insert k v m) m0 xs
494
506
495
507
deleteIM :: [Int ] -> IM. IntMap Int -> IM. IntMap Int
496
508
deleteIM xs m0 = foldl' (\ m k -> IM. delete k m) m0 xs
509
+ #endif
0 commit comments