Skip to content
This repository was archived by the owner on Oct 4, 2020. It is now read-only.

Commit 92d80d4

Browse files
committed
benchmarks for keys and values
1 parent 5754a85 commit 92d80d4

File tree

1 file changed

+45
-7
lines changed

1 file changed

+45
-7
lines changed

bench/Bench/Data/Map.purs

Lines changed: 45 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,20 +17,32 @@ benchMap = do
1717

1818
log ""
1919

20+
log "keys"
21+
log "------------"
22+
benchKeys
23+
24+
log ""
25+
26+
log "values"
27+
log "------------"
28+
benchValues
29+
30+
log ""
31+
2032
log "fromFoldable"
2133
log "------------"
2234
benchFromFoldable
2335

2436
where
2537

26-
benchSize = do
27-
let nats = L.range 0 999999
28-
natPairs = (flip Tuple) unit <$> nats
29-
singletonMap = M.singleton 0 unit
30-
smallMap = M.fromFoldable $ L.take 100 natPairs
31-
midMap = M.fromFoldable $ L.take 10000 natPairs
32-
bigMap = M.fromFoldable $ natPairs
38+
nats = L.range 0 999999
39+
natPairs = (flip Tuple) unit <$> nats
40+
singletonMap = M.singleton 0 unit
41+
smallMap = M.fromFoldable $ L.take 100 natPairs
42+
midMap = M.fromFoldable $ L.take 10000 natPairs
43+
bigMap = M.fromFoldable $ natPairs
3344

45+
benchSize = do
3446
log "size: singleton map"
3547
bench \_ -> M.size singletonMap
3648

@@ -43,6 +55,32 @@ benchMap = do
4355
log $ "size: big map (" <> show (M.size bigMap) <> ")"
4456
benchWith 10 \_ -> M.size bigMap
4557

58+
benchKeys = do
59+
log "keys: singleton map"
60+
bench \_ -> M.keys singletonMap
61+
62+
log $ "keys: small map (" <> show (M.size smallMap) <> ")"
63+
bench \_ -> M.keys smallMap
64+
65+
log $ "keys: midsize map (" <> show (M.size midMap) <> ")"
66+
benchWith 100 \_ -> M.keys midMap
67+
68+
log $ "keys: big map (" <> show (M.size bigMap) <> ")"
69+
benchWith 10 \_ -> M.keys bigMap
70+
71+
benchValues = do
72+
log "values: singleton map"
73+
bench \_ -> M.values singletonMap
74+
75+
log $ "values: small map (" <> show (M.size smallMap) <> ")"
76+
bench \_ -> M.values smallMap
77+
78+
log $ "values: midsize map (" <> show (M.size midMap) <> ")"
79+
benchWith 100 \_ -> M.values midMap
80+
81+
log $ "values: big map (" <> show (M.size bigMap) <> ")"
82+
benchWith 10 \_ -> M.values bigMap
83+
4684
benchFromFoldable = do
4785
let natStrs = show <$> L.range 0 99999
4886
natPairs = (flip Tuple) unit <$> natStrs

0 commit comments

Comments
 (0)