Skip to content

Commit 2cc872b

Browse files
committed
Benchmarks for HashSet.fromList
1 parent 476ef08 commit 2cc872b

File tree

1 file changed

+25
-3
lines changed

1 file changed

+25
-3
lines changed

benchmarks/FineGrained.hs

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import Control.Monad (replicateM)
1111
import Data.Bits (testBit)
1212
import Data.HashMap.Strict (HashMap)
1313
import qualified Data.HashMap.Strict as HM
14+
import qualified Data.HashSet
1415
import Data.Hashable
1516
import Data.List
1617
import Key.Bytes
@@ -21,9 +22,13 @@ import Prelude hiding (Foldable (..), lookup)
2122
main :: IO ()
2223
main =
2324
defaultMain
24-
[ bFromList,
25-
-- bgroup "insert" bInsert
26-
bUnion
25+
[ bgroup
26+
"HashMap.Strict"
27+
[ bFromList,
28+
-- bgroup "insert" bInsert
29+
bUnion
30+
],
31+
bgroup "HashSet" [bSetFromList]
2732
]
2833

2934
defaultGen :: StdGen
@@ -140,6 +145,23 @@ genInts ::
140145
genInts n = do
141146
replicateM n . uniformM
142147

148+
bSetFromList :: Benchmark
149+
bSetFromList =
150+
bgroup
151+
"fromList"
152+
[ bgroup "Bytes" (b bytesEnv),
153+
bgroup "Int" (b intsEnv)
154+
]
155+
where
156+
b e = [env (e s) (bench' s) | s <- defaultSizes]
157+
bench' s = bench (show s) . whnf Data.HashSet.fromList
158+
bytesEnv s = do
159+
g <- newIOGenM defaultGen
160+
genNBytes s bytesLength g
161+
intsEnv s = do
162+
g <- newIOGenM defaultGen
163+
genInts s g
164+
143165
{-
144166
bFromList = matrix defaultSizes e' b'
145167
where

0 commit comments

Comments
 (0)