Skip to content

Commit c34cf98

Browse files
committed
Add benchmarks for {Set,Map}.fromAscList and friends
1 parent 544bd71 commit c34cf98

File tree

2 files changed

+12
-4
lines changed

2 files changed

+12
-4
lines changed

containers-tests/benchmarks/Map.hs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ main = do
2121
m_even = M.fromAscList elems_even :: M.Map Int Int
2222
m_odd = M.fromAscList elems_odd :: M.Map Int Int
2323
evaluate $ rnf [m, m_even, m_odd]
24-
evaluate $ rnf elems_rev
24+
evaluate $ rnf [elems_rev, elems_asc, elems_desc]
2525
defaultMain
2626
[ bench "lookup absent" $ whnf (lookup evens) m_odd
2727
, bench "lookup present" $ whnf (lookup evens) m_even
@@ -89,7 +89,8 @@ main = do
8989
, bench "split" $ whnf (M.split (bound `div` 2)) m
9090
, bench "fromList" $ whnf M.fromList elems
9191
, bench "fromList-desc" $ whnf M.fromList (reverse elems)
92-
, bench "fromAscList" $ whnf M.fromAscList elems
92+
, bench "fromAscList" $ whnf M.fromAscList elems_asc
93+
, bench "fromDescList" $ whnf M.fromDescList elems_desc
9394
, bench "fromDistinctAscList" $ whnf M.fromDistinctAscList elems
9495
, bench "fromDistinctAscList:fusion" $ whnf (\n -> M.fromDistinctAscList [(i,i) | i <- [1..n]]) bound
9596
, bench "fromDistinctDescList" $ whnf M.fromDistinctDescList elems_rev
@@ -102,6 +103,10 @@ main = do
102103
elems_even = zip evens evens
103104
elems_odd = zip odds odds
104105
elems_rev = reverse elems
106+
keys_asc = map (`div` 2) [1..bound]
107+
elems_asc = zip keys_asc values
108+
keys_desc = map (`div` 2) [bound,bound-1..1]
109+
elems_desc = zip keys_desc values
105110
keys = [1..bound]
106111
evens = [2,4..bound]
107112
odds = [1,3..bound]

containers-tests/benchmarks/Set.hs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ main = do
1414
s_odd = S.fromAscList elems_odd :: S.Set Int
1515
strings_s = S.fromList strings
1616
evaluate $ rnf [s, s_even, s_odd]
17-
evaluate $ rnf elems_rev
17+
evaluate $ rnf [elems_rev, elems_asc, elems_desc]
1818
defaultMain
1919
[ bench "member" $ whnf (member elems) s
2020
, bench "insert" $ whnf (ins elems) S.empty
@@ -33,9 +33,10 @@ main = do
3333
, bench "intersection" $ whnf (S.intersection s) s_even
3434
, bench "fromList" $ whnf S.fromList elems
3535
, bench "fromList-desc" $ whnf S.fromList (reverse elems)
36-
, bench "fromAscList" $ whnf S.fromAscList elems
36+
, bench "fromAscList" $ whnf S.fromAscList elems_asc
3737
, bench "fromDistinctAscList" $ whnf S.fromDistinctAscList elems
3838
, bench "fromDistinctAscList:fusion" $ whnf (\n -> S.fromDistinctAscList [1..n]) bound
39+
, bench "fromDescList" $ whnf S.fromDescList elems_desc
3940
, bench "fromDistinctDescList" $ whnf S.fromDistinctDescList elems_rev
4041
, bench "fromDistinctDescList:fusion" $ whnf (\n -> S.fromDistinctDescList [n,n-1..1]) bound
4142
, bench "disjoint:false" $ whnf (S.disjoint s) s_even
@@ -62,6 +63,8 @@ main = do
6263
elems_even = [2,4..bound]
6364
elems_odd = [1,3..bound]
6465
elems_rev = reverse elems
66+
elems_asc = map (`div` 2) [1..bound]
67+
elems_desc = map (`div` 2) [bound,bound-1..1]
6568
strings = map show elems
6669

6770
member :: [Int] -> S.Set Int -> Int

0 commit comments

Comments
 (0)