packages feed

vector-binary-instances-0.2.1.1: benchmarks/Benchmarks.hs

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
    ]
  ]