packages feed

aeson-1.4.1.0: benchmarks/Compare.hs

{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE ScopedTypeVariables #-}

module Main (main) where

import Prelude.Compat

import Compare.BufferBuilder ()
import Compare.JsonBuilder ()
import Criterion.Main
import Data.BufferBuilder.Json
import Data.Json.Builder
import Twitter
import Twitter.Manual ()
import Typed.Common
import qualified Data.Aeson as Aeson
import qualified Compare.JsonBench as JsonBench

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
       , bench "json-builder" $ nf toJsonLBS twtr
       ]
   , JsonBench.benchmarks
   ]