@@ -48,6 +48,10 @@ benchMap = do
4848 log " ---------------"
4949 benchKeys
5050
51+ log " difference"
52+ log " ---------------"
53+ benchDifference
54+
5155 where
5256
5357 benchUnion = do
@@ -61,7 +65,7 @@ benchMap = do
6165 bigMap2' = M .fromFoldable $ natPairs2
6266 size = Map2a0bff .size bigMap
6367 size' = M .size bigMap'
64-
68+
6569 log $ " Map2a0bff.union: big map (" <> show size <> " )"
6670 benchWith 10 \_ -> Map2a0bff .union bigMap bigMap2
6771
@@ -170,3 +174,32 @@ benchMap = do
170174
171175 log $ " fromFoldable (" <> show (L .length natPairs) <> " )"
172176 benchWith 10 \_ -> M .fromFoldable natPairs
177+
178+ benchDifference = do
179+ let nats = L .range 0 999999
180+ natPairs = (flip Tuple ) unit <$> nats
181+ singletonMap = M .singleton 0 unit
182+ smallMap = Map2a0bff .fromFoldable $ L .take 100 natPairs
183+ smallMap' = M .fromFoldable $ L .take 100 natPairs
184+ midMap = Map2a0bff .fromFoldable $ L .take 10000 natPairs
185+ midMap' = M .fromFoldable $ L .take 10000 natPairs
186+ bigMap = Map2a0bff .fromFoldable $ natPairs
187+ bigMap' = M .fromFoldable $ natPairs
188+
189+ log $ " Map2a0bff.difference: small map (" <> show (Map2a0bff .size smallMap) <> " )"
190+ bench \_ -> Map2a0bff .difference smallMap midMap
191+
192+ log $ " M.difference: small map (" <> show (M .size smallMap') <> " )"
193+ bench \_ -> M .difference smallMap' midMap'
194+
195+ log $ " Map2a0bff.difference: midsize map (" <> show (Map2a0bff .size midMap) <> " )"
196+ benchWith 100 \_ -> Map2a0bff .difference midMap midMap
197+
198+ log $ " M.difference: midsize map (" <> show (M .size midMap') <> " )"
199+ benchWith 100 \_ -> M .difference midMap' midMap'
200+
201+ log $ " Map2a0bff.difference: big map (" <> show (Map2a0bff .size bigMap) <> " )"
202+ benchWith 10 \_ -> Map2a0bff .difference bigMap midMap
203+
204+ log $ " M.difference: big map (" <> show (M .size bigMap') <> " )"
205+ benchWith 10 \_ -> M .difference bigMap' midMap'
0 commit comments