Skip to content

Commit 79c5a50

Browse files
committed
WIP
1 parent 1646f9a commit 79c5a50

File tree

1 file changed

+23
-6
lines changed

1 file changed

+23
-6
lines changed

benchmarks/FineGrained.hs

Lines changed: 23 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -67,17 +67,25 @@ bInsert =
6767
bgroup "absent" bInsertAbsent
6868
]
6969

70+
-- | FIXME: This is with present keys, but mostly new values
7071
bInsertPresent :: [Benchmark]
7172
bInsertPresent =
72-
[ bgroup' "Bytes" undefined b,
73-
bgroup' "Int" setupInts b
73+
[ bgroup'WithSizes sizes "Bytes" setupBytes b,
74+
bgroup'WithSizes sizes "Int" setupInts b
7475
]
7576
where
77+
sizes = filter (/= 0) defaultSizes
78+
b s =
79+
bench (show s)
80+
. whnf (\(m, kvs) -> foldl' (\() (k, v) -> HM.insert k v m `seq` ()) () kvs)
81+
setupBytes size gen = do
82+
m <- genBytesMap size gen
83+
let kvs = zip (Data.List.cycle (HM.keys m)) [0 ..]
84+
return (m, take 100 kvs)
7685
setupInts size gen = do
7786
m <- genIntMap size gen
78-
let ks = Data.List.repeat (HM.keys m)
79-
return (m, take 100 ks)
80-
b s = bench (show s) . undefined
87+
let kvs = zip (Data.List.cycle (HM.keys m)) [0 ..]
88+
return (m, take 100 kvs)
8189

8290
bInsertAbsent :: [Benchmark]
8391
bInsertAbsent =
@@ -189,7 +197,16 @@ bgroup' ::
189197
(Int -> IOGenM StdGen -> IO env) ->
190198
(Int -> env -> Benchmark) ->
191199
Benchmark
192-
bgroup' name setup b = bgroup name [env' setup b s | s <- defaultSizes]
200+
bgroup' = bgroup'WithSizes defaultSizes
201+
202+
bgroup'WithSizes ::
203+
(NFData env) =>
204+
[Int] ->
205+
String ->
206+
(Int -> IOGenM StdGen -> IO env) ->
207+
(Int -> env -> Benchmark) ->
208+
Benchmark
209+
bgroup'WithSizes sizes name setup b = bgroup name [env' setup b s | s <- sizes]
193210

194211
env' ::
195212
(NFData env) =>

0 commit comments

Comments
 (0)