protobuf-0.2.1.4: bench/Bench.hs
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE OverloadedStrings #-}
module Main where
import Criterion.Main
import Data
import Nested
main :: IO ()
main = defaultMain [
bgroup "burst" [
bgroup "encoding" [
bench "1" $ nf enc (burst 1),
bench "10" $ nf enc (burst 10),
bench "100" $ nf enc (burst 100),
bench "1000" $ nf enc (burst 1000)
],
bgroup "decoding" [
bench "1" $ nf decBurst (encodeBurst 1),
bench "10" $ nf decBurst (encodeBurst 10),
bench "100" $ nf decBurst (encodeBurst 100),
bench "1000" $ nf decBurst (encodeBurst 1000)
]
],
bgroup "nested" [
bgroup "encoding" [
bench "a1" $ nf enc (nested 1 1),
bench "a10" $ nf enc (nested 1 10),
bench "a100" $ nf enc (nested 1 100),
bench "a1000" $ nf enc (nested 1 1000),
bench "b10" $ nf enc (nested 10 1),
bench "b100" $ nf enc (nested 100 1),
bench "b1000" $ nf enc (nested 1000 1)
],
bgroup "decoding" [
bench "a1" $ nf decNested (enc $ nested 1 1),
bench "a10" $ nf decNested (enc $ nested 1 10),
bench "a100" $ nf decNested (enc $ nested 1 100),
bench "a1000" $ nf decNested (enc $ nested 1 1000),
bench "b10" $ nf decNested (enc $ nested 10 1),
bench "b100" $ nf decNested (enc $ nested 100 1),
bench "b1000" $ nf decNested (enc $ nested 1000 1)
]
]
]