dns-patterns-0.2.3: benchmark/Bench.hs
{-# LANGUAGE OverloadedStrings #-}
import Criterion
import Criterion.Main
import Criterion.Types
import Network.DNS
import Network.DNS.Pattern
import Network.DNS.Pattern.Internal
unsafeRight :: Either l r -> r
unsafeRight e = case e of
Right r -> r
Left l -> error "unsafeRight: left!"
{-# NOINLINE d1 #-}
d1 :: Domain
d1 = unsafeRight (parseAbsDomain "0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.4.1.0.0.1.0.0.0.1.8.5.0.1.0.a.2.ip6.arpa.")
{-# NOINLINE d2 #-}
d2 :: Domain
d2 = unsafeRight (parseAbsDomain "0.1.1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.a.e.c.5.a.b.c.1.2.b.b.d.f.ip6.arpa.")
{-# NOINLINE d3 #-}
d3 :: Domain
d3 = unsafeRight (parseAbsDomain "0.1.124.10.in-addr.arpa.")
{-# NOINLINE d4 #-}
d4 :: Domain
d4 = unsafeRight (parseAbsDomain "ihvs0317.as9136.net.")
main = defaultMainWith cfg
[ bgroup "pprDomain_" [ bench "text prim: d1" $ whnf pprDomain_ d1
, bench "text prim: d2" $ whnf pprDomain_ d2
, bench "text prim: d3" $ whnf pprDomain_ d3
, bench "text prim: d4" $ whnf pprDomain_ d4 ]
, bgroup "pprDomain" [ bench "dlist+builder: d1" $ whnf pprDomain d1
, bench "dlist+builder: d2" $ whnf pprDomain d2
, bench "dlist+builder: d3" $ whnf pprDomain d3
, bench "dlist+builder: d4" $ whnf pprDomain d4 ]
]
where
cfg = defaultConfig
{ reportFile = Just "/home/dminuoso/criterion.report"
, rawDataFile = Just "/home/dminuoso/criterion.raw"
, verbosity = Verbose
}