@@ -121,6 +121,7 @@ main :: IO ()
121121main = do
122122 defaultMain
123123 [
124+ #ifdef BENCH_containers_Map
124125 env setupEnv $ \ ~ (Env {.. }) ->
125126 -- * Comparison to other data structures
126127 -- ** Map
@@ -161,10 +162,12 @@ main = do
161162 [ bench " String" $ whnf (M. isSubmapOf mSubset) m
162163 , bench " ByteString" $ whnf (M. isSubmapOf mbsSubset) mbs
163164 ]
164- ]
165+ ],
166+ #endif
165167
168+ #ifdef BENCH_hashmap_Map
166169 -- ** Map from the hashmap package
167- , env setupEnv $ \ ~ (Env {.. }) ->
170+ env setupEnv $ \ ~ (Env {.. }) ->
168171 bgroup " hashmap/Map"
169172 [ bgroup " lookup"
170173 [ bench " String" $ whnf (lookupIHM keys) ihm
@@ -202,14 +205,12 @@ main = do
202205 [ bench " String" $ whnf (IHM. isSubmapOf ihmSubset) ihm
203206 , bench " ByteString" $ whnf (IHM. isSubmapOf ihmbsSubset) ihmbs
204207 ]
205- , bgroup " hash"
206- [ bench " String" $ whnf hash hm
207- , bench " ByteString" $ whnf hash hmbs
208- ]
209- ]
208+ ],
209+ #endif
210210
211+ #ifdef BENCH_containers_IntMap
211212 -- ** IntMap
212- , env setupEnv $ \ ~ (Env {.. }) ->
213+ env setupEnv $ \ ~ (Env {.. }) ->
213214 bgroup " IntMap"
214215 [ bench " lookup" $ whnf (lookupIM keysI) im
215216 , bench " lookup-miss" $ whnf (lookupIM keysI') im
@@ -220,9 +221,10 @@ main = do
220221 , bench " size" $ whnf IM. size im
221222 , bench " fromList" $ whnf IM. fromList elemsI
222223 , bench " isSubmapOf" $ whnf (IM. isSubmapOf imSubset) im
223- ]
224+ ],
225+ #endif
224226
225- , env setupEnv $ \ ~ (Env {.. }) ->
227+ env setupEnv $ \ ~ (Env {.. }) ->
226228 bgroup " HashMap"
227229 [ -- * Basic interface
228230 bgroup " lookup"
@@ -357,6 +359,11 @@ main = do
357359 , bench " Int" $ whnf (HM. fromListWith (+) ) elemsDupI
358360 ]
359361 ]
362+ -- Hashable instance
363+ , bgroup " hash"
364+ [ bench " String" $ whnf hash hm
365+ , bench " ByteString" $ whnf hash hmbs
366+ ]
360367 ]
361368 ]
362369
@@ -438,6 +445,7 @@ isSubmapOfNaive m1 m2 = and [ Just v1 == HM.lookup k1 m2 | (k1,v1) <- HM.toList
438445{-# SPECIALIZE isSubmapOfNaive :: HM.HashMap String Int -> HM.HashMap String Int -> Bool #-}
439446{-# SPECIALIZE isSubmapOfNaive :: HM.HashMap BS.ByteString Int -> HM.HashMap BS.ByteString Int -> Bool #-}
440447
448+ #ifdef BENCH_containers_Map
441449------------------------------------------------------------------------
442450-- * Map
443451
@@ -458,7 +466,9 @@ deleteM xs m0 = foldl' (\m k -> M.delete k m) m0 xs
458466{-# SPECIALIZE deleteM :: [String] -> M.Map String Int -> M.Map String Int #-}
459467{-# SPECIALIZE deleteM :: [BS.ByteString] -> M.Map BS.ByteString Int
460468 -> M.Map BS.ByteString Int #-}
469+ #endif
461470
471+ #ifdef BENCH_hashmap_Map
462472------------------------------------------------------------------------
463473-- * Map from the hashmap package
464474
@@ -482,7 +492,9 @@ deleteIHM xs m0 = foldl' (\m k -> IHM.delete k m) m0 xs
482492 -> IHM.Map String Int #-}
483493{-# SPECIALIZE deleteIHM :: [BS.ByteString] -> IHM.Map BS.ByteString Int
484494 -> IHM.Map BS.ByteString Int #-}
495+ #endif
485496
497+ #ifdef BENCH_containers_IntMap
486498------------------------------------------------------------------------
487499-- * IntMap
488500
@@ -494,3 +506,4 @@ insertIM xs m0 = foldl' (\m (k, v) -> IM.insert k v m) m0 xs
494506
495507deleteIM :: [Int ] -> IM. IntMap Int -> IM. IntMap Int
496508deleteIM xs m0 = foldl' (\ m k -> IM. delete k m) m0 xs
509+ #endif
0 commit comments