aeson-1.4.2.0: benchmarks/Compare.hs
{-# LANGUAGE CPP #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE ScopedTypeVariables #-}
module Main (main) where
import Prelude.Compat
import Compare.BufferBuilder ()
import Criterion.Main
import Data.BufferBuilder.Json
import Twitter
import Twitter.Manual ()
import Typed.Common
import qualified Data.Aeson as Aeson
import qualified Compare.JsonBench as JsonBench
#ifdef MIN_VERSION_json_builder
import Data.Json.Builder
import Compare.JsonBuilder ()
#endif
main :: IO ()
main =
defaultMain [
env (load "json-data/twitter100.json") $ \ ~(twtr :: Result) ->
bgroup "twitter" [
bench "aeson" $ nf Aeson.encode twtr
, bench "buffer-builder" $ nf encodeJson twtr
#ifdef MIN_VERSION_json_builder
, bench "json-builder" $ nf toJsonLBS twtr
#endif
]
, JsonBench.benchmarks
]