swisstable-0.1.0.3: space/Main.hs
module Main where
import Control.DeepSeq
import qualified Data.HashTable.IO as H
import Data.HashTable.IO.Swiss hiding (fildM, mapM_)
import qualified Data.HashTable.ST.Basic
import qualified Data.HashTable.ST.Swiss as S
import Weigh
ssize = 1000000
main =
mainWith $ do
io "Swiss.insert" (testInsert new insert) ssize
io "Data.HashTable.ST.Basic.insert" (testInsert (H.new :: IO (H.BasicHashTable Int Int)) H.insert) ssize
io "Swiss.insert sized" (testInsert (newSized (2^21)) insert) ssize
io "Data.HashTable.ST.Basic.insert sized" (testInsert (H.newSized (2^21) :: IO (H.BasicHashTable Int Int)) H.insert) ssize
testInsert new insert size = do
t <- new
mapM_ (\x -> insert t x x) ([1..size] :: [Int])
pure t
instance NFData (Data.HashTable.ST.Basic.HashTable s k v) where
rnf x = seq x ()
instance NFData (S.Table s k v)