dhodovsk / source-git / ghc-aeson

Forked from source-git/ghc-aeson 4 years ago
Clone

Blame benchmarks/Micro.hs

Packit 9a2dfb
module Main (main) where
Packit 9a2dfb
Packit 9a2dfb
import Prelude ()
Packit 9a2dfb
import Prelude.Compat
Packit 9a2dfb
Packit 9a2dfb
import Criterion.Main
Packit 9a2dfb
import qualified Data.Aeson.Encoding.Builder as AB
Packit 9a2dfb
import qualified Data.ByteString.Builder as B
Packit 9a2dfb
import qualified Data.Text as T
Packit 9a2dfb
Packit 9a2dfb
main :: IO ()
Packit 9a2dfb
main = do
Packit 9a2dfb
  let txt = "append (append b (primBounded w1 x1)) (primBounded w2 x2)"
Packit 9a2dfb
  defaultMain [
Packit 9a2dfb
    bgroup "string" [
Packit 9a2dfb
      bench "text" $ nf (B.toLazyByteString . AB.text) (T.pack txt)
Packit 9a2dfb
    , bench "string direct" $ nf (B.toLazyByteString . AB.string) txt
Packit 9a2dfb
    , bench "string via text" $ nf (B.toLazyByteString . AB.text . T.pack) txt
Packit 9a2dfb
    ]
Packit 9a2dfb
   ]