Skip to content

Commit 24e8645

Browse files
committed
WIP
1 parent f04a55b commit 24e8645

File tree

1 file changed

+8
-20
lines changed

1 file changed

+8
-20
lines changed

benchmarks/FineGrained.hs

Lines changed: 8 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -89,13 +89,15 @@ bUnionOverlap =
8989

9090
bUnionEqual :: [Benchmark]
9191
bUnionEqual =
92-
[ bgroup "Bytes" [env' s genBytesMap run | s <- defaultSizes],
93-
bgroup "Int" [env' s genIntMap run | s <- defaultSizes]
92+
[ bgroup' "Bytes" genBytesMap b,
93+
bgroup' "Int" genIntMap b
9494
]
9595
where
96-
run :: (Hashable a) => HashMap a Int -> Benchmarkable
97-
run = whnf (\m -> HM.union m m)
96+
b size = bench (show size) . whnf (\m -> HM.union m m)
9897

98+
-- TODO: For the "overlap" and "equal" cases, it would be interesting to
99+
-- have separate benchmarks both with and without shared subtrees,
100+
-- so we can make use of pointer equality.
99101
bDifference :: Benchmark
100102
bDifference =
101103
bgroup
@@ -159,29 +161,15 @@ bgroup' ::
159161
(Int -> IOGenM StdGen -> IO env) ->
160162
(Int -> env -> Benchmark) ->
161163
Benchmark
162-
bgroup' name setup b = bgroup name [env'' setup b s | s <- defaultSizes]
164+
bgroup' name setup b = bgroup name [env' setup b s | s <- defaultSizes]
163165

164166
env' ::
165-
(NFData a) =>
166-
Int ->
167-
(Int -> IOGenM StdGen -> IO a) ->
168-
(a -> Benchmarkable) ->
169-
Benchmark
170-
env' size setup run =
171-
env
172-
( do
173-
gen <- newIOGenM defaultGen
174-
setup size gen
175-
)
176-
(\x -> bench (show size) (run x))
177-
178-
env'' ::
179167
(NFData env) =>
180168
(Int -> IOGenM StdGen -> IO env) ->
181169
(Int -> env -> Benchmark) ->
182170
Int ->
183171
Benchmark
184-
env'' setup b size =
172+
env' setup b size =
185173
env
186174
( do
187175
gen <- newIOGenM defaultGen

0 commit comments

Comments
 (0)