Skip to content

Commit c59897e

Browse files
committed
fine-grained: 1000 repetitions for fast ops
1 parent a7736a1 commit c59897e

File tree

1 file changed

+22
-22
lines changed

1 file changed

+22
-22
lines changed

benchmarks/FineGrained.hs

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -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
7070
bLookup :: Benchmark
7171
bLookup =
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
117117
bInsert :: Benchmark
118118
bInsert =
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
186186
bDelete :: Benchmark
187187
bDelete =
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

Comments
 (0)