bind-marshal-0.1: test/verify_dynamic_bytestring_perf.hs
-- Copyright : (C) 2009 Corey O'Connor
-- License : BSD-style (see the file LICENSE)
{-# LANGUAGE NoRebindableSyntax #-}
{-# LANGUAGE ImplicitPrelude #-}
import Verify
import ArbMarshal
import qualified ArbMarshal.Binary as Binary
import qualified ArbMarshal.Dynamic as Dynamic
import Bind.Marshal.Verify
{-# NOINLINE bench_to_dynamic #-}
bench_to_dynamic sv = return $! Dynamic.to_bytestring sv
{-# NOINLINE bench_to_binary #-}
bench_to_binary sv = return $! Binary.to_bytestring sv
{-# NOINLINE bench_from_dynamic #-}
bench_from_dynamic (Binary.ArbByteString s b) = return $! Dynamic.from_bytestring s b
{-# NOINLINE bench_from_binary #-}
bench_from_binary (Binary.ArbByteString s b) = return $! Binary.from_bytestring s b
main = run_test $ do
verify_faster "simple bytestring - versus binary" (perf_config {min_size = 8})
(return . Dynamic.simple_bytestring . unMax4KBInt )
(return . Binary.simple_bytestring . unMax4KBInt )
verify_faster "to_bytestring - versus binary" (perf_config { min_size = 3200
, max_case_size = 10
}
)
bench_to_dynamic bench_to_binary
verify_faster "from_bytestring - versus binary" (perf_config { min_size = 12000
, max_case_size = 10
}
)
bench_from_dynamic bench_from_binary
return ()