human-friendly-id-gen/src-benchmark/Main.hs
Yann Esposito (Yogsototh) 48d94fee6d
benchmarks
2018-09-13 12:55:27 +02:00

25 lines
1.1 KiB
Haskell

import Protolude
import Criterion
import Criterion.Main
import qualified Data.Vector as V
import qualified HFIG.Dictionary as Dict
import qualified HFIG.Lovecraftian as Lov
import qualified HFIG.Short as Short
main :: IO ()
main = do
englishDict <- Dict.dictionaryFromFile "dictionaries/english.txt"
putText $ "loaded english Dict: " <> (show (V.length englishDict) :: Text)
genericDict <- Dict.dictionaryFromFile "dictionaries/generic.txt"
putText $ "loaded generic Dict: " <> (show (V.length genericDict) :: Text)
defaultMain [ bench "short idgen (10)" (nfIO (Short.idgen 10))
, bench "short idgen (100)" (nfIO (Short.idgen 100))
, bench "lovecraftian idgen (1)" (nfIO (Lov.idgen 1))
, bench "lovecraftian idgen (10)" (nfIO (Lov.idgen 10))
, bench "dictionary idgen (english 3)"
(nfIO (Dict.idgen englishDict 3))
, bench "dictionary idgen (generic 3)"
(nfIO (Dict.idgen genericDict 3))
]