@@ -66,11 +66,11 @@ bFromList =
6666 setupBytes s gen = genNBytes s bytesLength gen
6767 b s = bench (show s) . whnf (HM. fromList . map (,() ))
6868
69- -- 100 lookups each, so we get more precise timings
69+ -- 1000 lookups each, so we get more precise timings
7070bLookup :: Benchmark
7171bLookup =
7272 bgroup
73- " lookup"
73+ " lookup (1000x) "
7474 [ bgroup " presentKey" bLookupPresentKey,
7575 bgroup " absentKey" bLookupAbsentKey
7676 ]
@@ -85,7 +85,7 @@ bLookupPresentKey =
8585 b s =
8686 bench (show s)
8787 . whnf (\ (m, ks) -> foldl' (\ () k -> HM. lookup k m `seq` () ) () ks)
88- toKs = take 100 . Data.List. cycle . HM. keys
88+ toKs = take 1000 . Data.List. cycle . HM. keys
8989 setupBytes size gen = do
9090 m <- genBytesMap size gen
9191 return (m, toKs m)
@@ -104,20 +104,20 @@ bLookupAbsentKey =
104104 . whnf (\ (m, ks) -> foldl' (\ () k -> HM. lookup k m `seq` () ) () ks)
105105 setupBytes size gen = do
106106 m <- genBytesMap size gen
107- ks0 <- genNBytes 200 bytesLength gen
108- let ks1 = take 100 $ Data.List. cycle $ filter (not . flip HM. member m) ks0
107+ ks0 <- genNBytes 2000 bytesLength gen
108+ let ks1 = take 1000 $ Data.List. cycle $ filter (not . flip HM. member m) ks0
109109 return (m, ks1)
110110 setupInts size gen = do
111111 m <- genIntMap size gen
112- ks0 <- genInts 200 gen
113- let ks1 = take 100 $ Data.List. cycle $ filter (not . flip HM. member m) ks0
112+ ks0 <- genInts 2000 gen
113+ let ks1 = take 1000 $ Data.List. cycle $ filter (not . flip HM. member m) ks0
114114 return (m, ks1)
115115
116- -- 100 insertions each, so we get more precise timings
116+ -- 1000 insertions each, so we get more precise timings
117117bInsert :: Benchmark
118118bInsert =
119119 bgroup
120- " insert"
120+ " insert (1000x) "
121121 [ bgroup
122122 " presentKey"
123123 [ bgroup " sameValue" bInsertPresentKeySameValue,
@@ -136,7 +136,7 @@ bInsertPresentKeySameValue =
136136 b s =
137137 bench (show s)
138138 . whnf (\ (m, kvs) -> foldl' (\ () (k, v) -> HM. insert k v m `seq` () ) () kvs)
139- toKVs = take 100 . Data.List. cycle . HM. toList
139+ toKVs = take 1000 . Data.List. cycle . HM. toList
140140 setupBytes size gen = do
141141 m <- genBytesMap size gen
142142 return (m, toKVs m)
@@ -154,7 +154,7 @@ bInsertPresentKeyDifferentValue =
154154 b s =
155155 bench (show s)
156156 . whnf (\ (m, kvs) -> foldl' (\ () (k, v) -> HM. insert k v m `seq` () ) () kvs)
157- toKVs = take 100 . Data.List. cycle . map (second (+ 1 )) . HM. toList
157+ toKVs = take 1000 . Data.List. cycle . map (second (+ 1 )) . HM. toList
158158 setupBytes size gen = do
159159 m <- genBytesMap size gen
160160 return (m, toKVs m)
@@ -173,20 +173,20 @@ bInsertAbsentKey =
173173 . whnf (\ (m, kvs) -> foldl' (\ () (k, v) -> HM. insert k v m `seq` () ) () kvs)
174174 setupBytes size gen = do
175175 m <- genBytesMap size gen
176- ks <- genNBytes 200 bytesLength gen
177- let kvs = take 100 $ Data.List. cycle $ map (,1 ) $ filter (not . flip HM. member m) ks
176+ ks <- genNBytes 2000 bytesLength gen
177+ let kvs = take 1000 $ Data.List. cycle $ map (,1 ) $ filter (not . flip HM. member m) ks
178178 return (m, kvs)
179179 setupInts size gen = do
180180 m <- genIntMap size gen
181- ks <- genInts 200 gen
182- let kvs = take 100 $ Data.List. cycle $ map (,1 ) $ filter (not . flip HM. member m) ks
181+ ks <- genInts 2000 gen
182+ let kvs = take 1000 $ Data.List. cycle $ map (,1 ) $ filter (not . flip HM. member m) ks
183183 return (m, kvs)
184184
185- -- 100 deletions each, so we get more precise timings
185+ -- 1000 deletions each, so we get more precise timings
186186bDelete :: Benchmark
187187bDelete =
188188 bgroup
189- " delete"
189+ " delete (1000x) "
190190 [ bgroup " presentKey" bDeletePresentKey,
191191 bgroup " absentKey" bDeleteAbsentKey
192192 ]
@@ -201,7 +201,7 @@ bDeletePresentKey =
201201 b s =
202202 bench (show s)
203203 . whnf (\ (m, ks) -> foldl' (\ () k -> HM. delete k m `seq` () ) () ks)
204- toKs = take 100 . Data.List. cycle . HM. keys
204+ toKs = take 1000 . Data.List. cycle . HM. keys
205205 setupBytes size gen = do
206206 m <- genBytesMap size gen
207207 return (m, toKs m)
@@ -220,13 +220,13 @@ bDeleteAbsentKey =
220220 . whnf (\ (m, ks) -> foldl' (\ () k -> HM. delete k m `seq` () ) () ks)
221221 setupBytes size gen = do
222222 m <- genBytesMap size gen
223- ks0 <- genNBytes 200 bytesLength gen
224- let ks1 = take 100 $ Data.List. cycle $ filter (not . flip HM. member m) ks0
223+ ks0 <- genNBytes 2000 bytesLength gen
224+ let ks1 = take 1000 $ Data.List. cycle $ filter (not . flip HM. member m) ks0
225225 return (m, ks1)
226226 setupInts size gen = do
227227 m <- genIntMap size gen
228- ks0 <- genInts 200 gen
229- let ks1 = take 100 $ Data.List. cycle $ filter (not . flip HM. member m) ks0
228+ ks0 <- genInts 2000 gen
229+ let ks1 = take 1000 $ Data.List. cycle $ filter (not . flip HM. member m) ks0
230230 return (m, ks1)
231231
232232-- TODO: For the "overlap" and "equal" cases, it would be interesting to
0 commit comments