import Criterion.Main import Data.Binary import qualified Data.ByteString.Lazy as BS import qualified Data.Vector.Unboxed as U import Data.Vector.Binary vec1,vec2,vec3 :: U.Vector Int vec1 = U.enumFromN 0 3 vec2 = U.enumFromN 0 30 vec3 = U.enumFromN 0 300 bs1,bs2,bs3 :: BS.ByteString bs1 = encode vec1 bs2 = encode vec2 bs3 = encode vec3 type V = BS.ByteString -> U.Vector Int main = defaultMain [ bgroup "encode" [ bench "U.Vector Int 3" $ nf encode vec1 , bench "U.Vector Int 30" $ nf encode vec2 , bench "U.Vector Int 300" $ nf encode vec3 ] , bgroup "decode" [ bench "U.Vector Int 3" $ nf (decode :: V) bs1 , bench "U.Vector Int 30" $ nf (decode :: V) bs2 , bench "U.Vector Int 300" $ nf (decode :: V) bs3 ] ]